Frozenset() в Python — это встроенная функция, которая принимает итерируемый объект в качестве входных данных и делает его неизменяемым. Frozenset аналогичен set, за исключением того, что его элементы неизменяемы. Порядок элементов не гарантируется.
Что такое FrozenSet() в Python?
Функция FrozenSet() в Python возвращает неизменяемый объект Frozenset, инициализированный элементами из заданного итерируемого объекта. FrozenSet() помогает нам преобразовать изменяемый объект в неизменяемый. Frozenset — это просто неизменяемая версия объекта набора Python.

Синтаксис функции следующий:
|
1 |
frozenset(iterable) |
Функция принимает итерируемый объект в качестве входного параметра. Iterable может быть установлен, словарь, кортеж и т. д.
См. следующий пример кода.
|
1 2 3 4 5 6 |
# app.py cast =('Millie', 'Winona', 'David', 'Finn', 'Gaten', 'Caleb', 'Noah) frozencast = frozenset(cast) print('The frozen set is:', frozencast) |
Вывод:
|
1 2 3 |
➜ pyt python3 app.py The frozen set is: frozenset({'Finn', 'Caleb', 'David', 'Millie', 'Winona', 'Gaten', 'Noah}) ➜ pyt |
Давайте возьмем пример словаря Python.
|
1 2 3 4 5 6 7 8 9 10 |
# app.py castD = { 'name': 'Krunal', 'age': 26, 'education': 'BE' } frozencast = frozenset(castD) print('The frozen set is:', frozencast) |
Вывод:
|
1 2 3 |
➜ pyt python3 app.py The frozen set is: frozenset({'education', 'name', 'age'}) ➜ pyt |
Как и обычные наборы, замороженный набор также может выполнять различные операции, такие как объединение, пересечение и т. д.
Изменение Frozenset
Давайте попробуем изменить Frozenset и увидим следующий результат.
|
1 2 3 4 5 6 |
# app.py cast = ['Millie', 'Winona', 'David', 'Finn', 'Gaten', 'Caleb'] frozencast = frozenset(cast) frozencast[1] = 'Sadie' |
Вывод:
|
1 2 3 4 5 6 |
➜ pyt python3 app.py Traceback(most recent call last): File "app.py", line 4, in <module> frozencast[1] = 'Sadie' TypeError: 'frozenset' object does not support item assignment ➜ pyt |
Итерация элементов
Мы можем использовать цикл for для перебора Frozen-элементов множества.
|
1 2 3 4 5 6 7 |
# app.py cast = ['Millie', 'Winona', 'David', 'Finn', 'Gaten', 'Caleb'] frozencast = frozenset(cast) for data in frozencast: print(data) |
Вывод:
|
1 2 3 4 5 6 7 8 |
➜ pyt python3 app.py Gaten Finn Millie Winona Caleb David ➜ pyt |
Функции FrozenSet
Доступных методов для изменения его элементов нет. Таким образом, функции add(), update(), remove(), pop() и т. д. не определены для FrozenSet.
Тем не менее, некоторые из функций, доступных для объекта FrozenSet, перечислены ниже.
len(fs): возвращает количество элементов во замороженном наборе.x in fs: возвращает True, если x присутствует в fs, иначе возвращает False.x not in fs: возвращает True, если x отсутствует в fs, иначе возвращает False.isdisjoint(other): возвращает True, если FrozenSet не имеет общих элементов с другими. Два множества не пересекаются тогда и только тогда, когда их пересечение является пустым множеством.issubset(other): возвращает True, если каждый элемент набора присутствует в другом наборе, иначе возвращает False.issuperset(other): возвращает True, если в наборе присутствует каждый элемент из other, иначе возвращает False.union(*others): возвращает новый объект FrozenSet с элементами из этого набора и других наборов.intersection(*others): возвращает новый FrozenSet с элементами из этого набора и всех других наборов.difference(*others): возвращает новый FrozenSet с элементами в замороженном наборе, которых нет в других наборах.symmetric_difference(other): возвращает новый FrozenSet с элементами либо из замороженного набора, либо из другого, но не из обоих одновременно.
