Короткий ответ
Список — изменяемая коллекция: его содержимое можно менять после создания. Кортеж — неизменяемый: элементы задаются один раз, и изменить их нельзя.
Как это работает подробнее
Разница в изменяемости влечёт важные практические следствия.
- Хешируемость. Кортеж можно использовать как ключ словаря или элемент множества, а список — нет, поскольку он изменяем.
- Память и скорость. Кортеж обычно занимает меньше памяти и создаётся быстрее, чем список с теми же элементами.
- Соглашение о данных. Список принято использовать для однородных последовательностей, а кортеж — для разнородных, фактически как запись, например пара «адрес и порт».
- Один элемент. Кортеж из одного элемента создаётся только с запятой:
(1,), иначе(1)— просто число в скобках.
Что использовать на практике
- Изменяемые данные. Если элементы нужно дополнять, удалять или сортировать на месте — выбирай список.
- Неизменяемый контракт. Для фиксированного набора значений, ключа словаря или быстрого доступа к набору данных подходит кортеж.
- Структуры-записи. Для разнородных данных вроде пары «адрес и порт» используй кортеж.
Подводные камни
- Забытая запятая. Запись
(1)— это число, а не кортеж; кортеж из одного элемента создаётся только так:(1,). - Ограничение кортежа. Переприсвоить элемент кортежа нельзя, хотя изменять вложенные изменяемые объекты кортеж не запрещает.
- Неверный выбор. Список там, где данные не должны меняться, делает контракт менее явным и тратит память.
Как отвечать на собеседовании
- Начни с главного различия — изменяемости → поясни следствия: хешируемость, память и роль кортежа как записи → приведи пример использования кортежа ключом словаря → добавь нюанс про запятую в кортеже из одного элемента.