Sobes.tech
Back to questions
Junior — Middle
63

Можете объяснить, что такое immutable множества в Python и чем они отличаются от обычных?

Companies where asked
Леста

Answer from AI

sobes.tech AI

В Python immutable множества представлены типом frozenset. В отличие от обычных множеств (set), которые изменяемы (можно добавлять или удалять элементы), frozenset является неизменяемым — после создания его содержимое нельзя изменить.

Основные отличия:

  • Изменяемость: set можно изменять (добавлять, удалять элементы), frozenset — нет.
  • Хешируемость: frozenset можно использовать как ключ в словарях или элемент других множеств, так как он хешируем, а set — нет.

Пример использования:

s = set([1, 2, 3])
s.add(4)  # Обычное множество можно изменить

fs = frozenset([1, 2, 3])
# fs.add(4)  # Ошибка, нельзя изменить frozenset

# frozenset можно использовать как ключ словаря
d = {fs: "immutable set"}
print(d[fs])  # Выведет: immutable set

Таким образом, frozenset полезен, когда нужно иметь множество, которое не изменяется и может использоваться в качестве ключа или элемента других коллекций.