Встречается на собеседованиях • сегодня

В чем разница между изменяемыми изменяемыми и неизменяемыми структурами данных

Неизменяемые (immutable) структуры данных нельзя изменить после создания. При попытке изменения создается новый объект. Примеры: int, str, tuple, frozenset.

Изменяемые (mutable) структуры можно изменять после создания без создания нового объекта. Примеры: list, dict, set.

Пример с int (immutable):

python
x = 5
print(id(x))  # 1407085392
x += 1
print(id(x))  # 1407085408 - новый объект

Пример с list (mutable):

python
lst = [1, 2]
print(id(lst))  # 1402450376
lst.append(3)
print(id(lst))  # 1402450376 - тот же объект

Ключевые различия:

  1. Изменяемые объекты могут быть ключами словаря только если они хешируемы (обычно только неизменяемые)
  2. Неизменяемые объекты безопаснее в многопоточном коде
  3. При передаче в функцию изменяемые объекты передаются по ссылке, неизменяемые - по значению
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы