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.