list vs tuple в Python: разница для собеса
list и tuple — два базовых упорядоченных контейнера в Python. Главное различие — изменяемость: list можно править, tuple нет. На собесе это базовый вопрос, по которому проверяют, понимаете ли вы immutability, hashing и почему tuple можно класть в set/dict.
Если коротко. list изменяемый (mutable), tuple неизменяемый (immutable). Tuple можно класть в set и dict-key, list — нет.
Проверь себя · 1/3разбор после ответа
При обработке событий нужно хранить идентификаторы пользователей, которых вы уже видели, чтобы быстро проверять условие
user_id in seen и не хранить дубликаты. Что лучше использовать для seen?list vs tuple: таблица различий
Когда использовать list
- Размер коллекции меняется (добавляете/удаляете).
- Элементы будут изменяться.
- Нужны методы append/extend/sort/reverse.
Когда использовать tuple
- Хотите гарантию неизменности (например, координата (x, y)).
- Используете как ключ в dict или элемент set.
- Возвращаете несколько значений из функции — это идиома Python.
На примере
list — изменяем
pts = [(0, 0), (1, 1)]
pts.append((2, 2)) # ок
pts[0] = (5, 5) # окtuple — фиксирован
pt = (3, 4)
# pt[0] = 5 # TypeError
seen = {pt} # tuple → в set
d = {pt: 'origin'} # tuple → ключ dictЛовушка на собесе
Известная ловушка:
a = ([],) — tuple из одного элемента-list. tuple неизменяем по ссылкам, но a[0].append(1) сработает. Immutability tuple не значит deep-immutability.