Sobes.tech
Back to questions
Junior — Middle
56

Какое отличие между наборами с возможностью изменения и неизменяемыми наборами в Python?

Answer from AI

sobes.tech AI

В Python существуют изменяемые (mutable) и неизменяемые (immutable) наборы:

  • set — изменяемый набор. Можно добавлять, удалять элементы после создания.
  • frozenset — неизменяемый набор. После создания его содержимое нельзя изменить.

Отличия:

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

Пример:

s = set([1, 2, 3])
s.add(4)  # работает

fs = frozenset([1, 2, 3])
# fs.add(4)  # вызовет ошибку AttributeError

# frozenset можно использовать как ключ словаря
my_dict = {fs: "immutable set"}