Ответ
Основное различие заключается в изменяемости (mutability).
- Список (list) — это изменяемая (mutable) последовательность. После создания можно добавлять, удалять и изменять элементы.
- Кортеж (tuple) — это неизменяемая (immutable) последовательность. После создания его содержимое изменить нельзя.
Синтаксис:
my_list = [1, 2, 3] # Квадратные скобки
my_tuple = (1, 2, 3) # Круглые скобки (или просто 1, 2, 3)
Практические последствия и примеры:
-
Изменение элементов:
my_list = [1, 2, 3] my_list[0] = 99 # Допустимо. Теперь список [99, 2, 3] my_tuple = (1, 2, 3) my_tuple[0] = 99 # Вызовет TypeError: 'tuple' object does not support item assignment -
Использование в качестве ключа словаря: Из-за неизменяемости кортежи могут быть ключами словаря, а списки — нет.
valid_dict = {(1, 2): "coordinates"} # Корректно invalid_dict = {[1, 2]: "list"} # Вызовет TypeError: unhashable type: 'list' -
Производительность и намерения: Кортежи обычно работают немного быстрее и занимают меньше памяти. Их использование сигнализирует о том, что данные являются константными (например, точка
(x, y), запись из БД). Списки предназначены для динамических коллекций.
Резюме: Используйте список, когда коллекция должна меняться. Используйте кортеж для фиксированных наборов данных, которые должны оставаться неизменными.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶