Easymutable
Чем mutable отличается от immutable типов?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Mutable — объект можно изменить после создания (list, dict, set, bytearray). Immutable — после создания не изменить (int, float, str, tuple, frozenset, bytes, bool).
lst = [1, 2]
print(id(lst)) # 140... (id останется тем же)
lst.append(3) # тот же объект, изменён
s = "hi"
print(id(s)) # 140...
s += "!" # создаётся НОВЫЙ объект
print(id(s)) # другой id- immutable → hashable, можно использовать как dict key / set element;
- mutable → unhashable, нельзя;
- tuple с mutable элементами — частично изменяемый:
t = ([1],); t[0].append(2)OK,t[0] = [3]→ TypeError; - mutable default args — общий坑 (см. отдельный вопрос).
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.