Чем list отличается от tuple в Python и когда лучше использовать каждый тип?
Как отвечать ▾Скрыть подсказку ▴
Как отвечать: Сравните изменяемость, потребление памяти, хешируемость и типичные сценарии: коллекция для изменения против неизменяемой структуры данных.
Пример сильного ответа
Список изменяемый, кортеж — нет: после создания элементы tuple не поменять, зато он хешируемый, поэтому годится как ключ словаря или элемент множества. Кортеж занимает меньше памяти и создаётся быстрее, и это ещё сигнал читателю кода: набор фиксирован. Список беру, когда данные копятся и меняются — очередь задач, буфер, результаты запроса. Кортеж — для константных наборов, координат, полей записи, распаковки аргументов. В одном сервисе справочник из двенадцати неизменяемых статусов заказа хранился кортежем, и это защищало от случайной правки, а ревью кода шло заметно быстрее.
- Чётко разделены изменяемость, хешируемость и производительность.
- Есть практический пример с пользой для команды.
- Показан критерий выбора, а не только определение.
Возьмите структуру и подставьте свой опыт — заученный чужой ответ интервьюер слышит сразу.