- Список изменяемый, а кортеж — нет
- Кортеж может выступать в качестве ключа в словаре или элементам множества
- Кортеж занимает меньше места в памяти, т.к. имеет фиксированную длину
a = (1, 2, 3, 4, 5, 6)
b = [1, 2, 3, 4, 5, 6]
print(a.__sizeof__()) # 72
print(b.__sizeof__()) # 88
- Кортеж работает быстрее списка, из-за особенностей хранения в памяти. Для того, чтобы снизить фрагментацию памяти и ускорить создание кортежей, Python переиспользует старые кортежи, которые были удалены. Если кортеж состоит из менее чем 20 элементов и больше не используется, то вместо удаления Python помещает его в специальный список, в котором хранятся свободные для повторного использования кортежи
- Кортежи поддерживают неограниченный уровень вложенности
- Пустой кортеж работает как синглтон, т.е. в памяти запущенного Python скрипта всегда находится только один пустой кортеж. Все пустые кортежи просто ссылаются на один и тот же объект, это возможно благодаря тому, что кортежи неизменяемы. Такой подход сохраняет много памяти и ускоряет процесс работы с пустыми кортежами.