s = {1, 2, 3}
s.add(4) # Работает нормально
fs = frozenset({1, 2, 3})
fs.add(4) # Вызывает AttributeError
Так как frozenset неизменяем, он hashable, то есть его можно использовать в контекстах, которые требуют фиксированного идентификатора:
fs = frozenset({1, 2})
d = {fs: "value"} # Валидный ключ словаря
s = {fs, frozenset({3, 4})} # Валидный элемент set'а
Обычный set нельзя использовать таким образом, так как он не поддерживает хэширование.
Можно использовать frozenset как ключ словаря, потому что он неизменяем и, следовательно, хешируем, в то время как обычный set нельзя использовать как ключ словаря.
Новый — ещё не проверен сообществом
Вы