Ответ
Основное отличие — изменяемость (mutability), что влечёт за собой различия в использовании и производительности.
| Характеристика | Список (list) |
Кортеж (tuple) |
|---|---|---|
| Изменяемость | Изменяемый (mutable). Элементы можно изменять, добавлять, удалять. | Неизменяемый (immutable). После создания элементы изменить нельзя. |
| Синтаксис | Квадратные скобки: [1, 2, 3] |
Круглые скобки (часто опциональны): (1, 2, 3) или 1, 2, 3 |
| Производительность | Медленнее при итерации, занимает больше памяти из-за накладных расходов на изменение. | Быстрее, занимает меньше памяти, так как структура фиксирована. |
| Использование | Для коллекций, которые могут меняться (динамические данные). | Для константных коллекций (ключи словаря, возврат нескольких значений из функции). |
| Хэшируемость | Не хэшируем (не может быть ключом словаря). | Хэшируем, если все его элементы хэшируемы (может быть ключом словаря). |
Примеры:
# Список — можно изменить
my_list = [1, 2, 3]
my_list[0] = 10 # OK: [10, 2, 3]
my_list.append(4) # OK: [10, 2, 3, 4]
# Кортеж — изменить нельзя
my_tuple = (1, 2, 3)
# my_tuple[0] = 10 # TypeError: 'tuple' object does not support item assignment
# Практическое применение кортежа
def get_user_info(user_id):
# Возврат нескольких значений как единой неизменяемой структуры
name = "Alice"
role = "Admin"
return (user_id, name, role) # или просто return user_id, name, role
# Использование как ключа словаря (только если элементы хэшируемы)
cache = {}
key = ("api", "v1", 123)
cache[key] = "cached_data" Видео-ответы
▶
СОБЕСЕДОВНИЕ SENIOR AQA PYTHON | ВИЛКА 350к
▶
Собеседование Python developer на 4000$
▶
Собеседование Python разработчика
▶
MOCK-СОБЕСЕДОВАНИЕ EX-TINKOFF | BACKEND собеседование, знания Python, задачи на код
▶
Тестовое интервью с Михаилом на позицию Junior Python-разработчик
▶
Junior Python-инженер | Собеседование
▶
MOCK-СОБЕСЕДОВАНИЕ с Эдуардом | Знания Python, задачи на код, алгоритмические задачи
▶
#22 Как Стёпа собес на Python / Django / React проходил
▶
Собеседование Trainee Python Developer
▶
Собеседование Trainee Python Developer
▶
Техническое собеседование на позицию Python Junior | Solvery + Moscow Python
▶
Публичное собеседование: Junior Python-программист