Списки — это изменяемые структуры данных, то есть их элементы можно добавлять, удалять или изменять после создания. Кортежи — неизменяемые — однажды созданный кортеж нельзя модифицировать.
Кортежи занимают меньше памяти, чем списки. Поскольку Python знает, что размер кортежа никогда не изменится, он выделяет фиксированный, более компактный блок памяти — в отличие от списков, которые резервируют дополнительное место на случай расширения.
Кортежи обычно быстрее списков при итерации и доступе к элементам. Проверить это можно с помощью модуля timeit. Создание кортежа тоже происходит быстрее:
tuple_example = (1, 2, 3) # быстрее создавать
list_example = [1, 2, 3] # немного медленнее создавать
(x, y) или значений конфигурации.Поскольку кортежи неизменяемы, они хешируемы и могут использоваться как ключи словаря или добавляться в множества. Списки — нет:
valid = {(1, 2): "point"} # кортеж как ключ — работает
invalid = {[1, 2]: "point"} # список как ключ — вызывает TypeError
| Свойство | Список | Кортеж |
|---|---|---|
| Изменяемый | ✅ Да | ❌ Нет |
| Память | Выше | Ниже |
| Скорость | Медленнее | Быстрее |
| Хешируемый | ❌ Нет | ✅ Да |
Кортежи можно использовать в качестве ключей словаря, потому что они неизменяемы и хешируемы, в то время как списки нельзя использовать в качестве ключей, потому что они изменяемы.
Новый — ещё не проверен сообществом
Вы