все Python 3Множества (set)понятие
frozenset — неизменяемое множество
frozenset
frozenset — неизменяемая версия set. Хэшируемо, может быть ключом словаря или элементом другого множества.
Синтаксис
frozenset(iterable)
Именно ради неизменяемости frozenset и берут: множество множеств или набор-ключ в словаре иначе не собрать — обычный set нехэшируем и падает с TypeError: unhashable type: 'set'. Методов, меняющих объект на месте (add, discard, pop, update), здесь нет, а вот сравнение работает через границу типов: frozenset({1, 2}) == {1, 2} даёт True. В смешанных операциях тип результата задаёт левый операнд: frozenset | set вернёт frozenset, а set | frozenset — обычный set.
Примеры
fs = frozenset([1, 2, 3])
print(fs) # → frozenset({1, 2, 3})
try:
fs.add(4)
except AttributeError as e:
print(e) # → 'frozenset' object has no attribute 'add'
d = {frozenset([1, 2]): 'pair'}
print(d[frozenset([2, 1])]) # → pair — ключ словаря, порядок не важен
s = {frozenset([1, 2]), frozenset([3, 4])}
print(len(s)) # → 2 — элемент множества
fs2 = frozenset([1, 2, 3])
fs3 = frozenset([2, 3, 4])
print(fs2 & fs3) # → frozenset({2, 3})
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности