frozenset()
Функция frozenset() создаёт неизменяемое множество. От обычного
set отличается тем, что после создания его нельзя дополнять или
удалять элементы. Зато frozenset является хэшируемым и может
использоваться как ключ словаря или элемент другого множества.
Сигнатура
frozenset(iterable=())
Параметры:
iterable— любой итерируемый объект, элементы которого должны быть хэшируемыми.
Возвращает: новый объект frozenset.
Примеры
Создание из списка и удаление дублей:
nums = frozenset([1, 2, 2, 3, 3, 3])
print(nums)
frozenset({1, 2, 3})
Попытка изменить — приведёт к ошибке:
colors = frozenset(["red", "green"])
try:
colors.add("blue")
except AttributeError as e:
print("error:", e)
error: 'frozenset' object has no attribute 'add'
Применение операций множеств:
a = frozenset([1, 2, 3, 4])
b = frozenset([3, 4, 5, 6])
print(a & b)
print(a | b)
print(a - b)
frozenset({3, 4})
frozenset({1, 2, 3, 4, 5, 6})
frozenset({1, 2})
Использование в качестве ключа словаря:
permissions = {
frozenset(["read"]): "viewer",
frozenset(["read", "write"]): "editor",
frozenset(["read", "write", "admin"]): "owner",
}
role = permissions[frozenset(["write", "read"])]
print(role)
editor
Множество множеств:
groups = {frozenset([1, 2]), frozenset([2, 1]), frozenset([3])}
print(len(groups))
2
См. также
Примечание
Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.