Вопрос объясняет назначение frozenset и его ключевые отличия от обычного set.
frozenset — это неизменяемая версия set. Его нельзя изменить после создания, но он поддерживает все операции множества (объединение, пересечение). Используется как ключ в словарях.
Основные отличия:
set - изменяемый, не хешируется, занимает больше памяти
frozenset - неизменяемый, хешируется, занимает меньше памяти
Пример:
fs = frozenset([1, 2, 3])
s = {1, 2, 3}
s.add(4) # Работает
fs.add(4) # Ошибка: 'frozenset' не поддерживает добавление
# Использование как ключа
d = {fs: "value"} # Корректно
d = {s: "value"} # TypeError: unhashable typeКогда использовать frozenset:
Для ключей в словарях.
Когда нужно гарантировать неизменность данных.
Вывод:frozenset полезен там, где требуется неизменяемое множество.