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"}