Что такое Кортежи (Tuple) в python и зачем они?
Кортеж в Python это:
- последовательность элементов, которые разделены между собой запятой и заключены в скобки
- неизменяемый упорядоченный тип данных
Грубо говоря, кортеж - это список, который нельзя изменить. То есть, в кортеже есть только права на чтение. Это может быть защитой от случайных изменений.
Некоторые особенности кортежей:
- они упорядочены по позициям;
- кортежи могут хранить и содержать внутри себя объекты любых типов (и даже составных);
- доступ к элементам происходит по смещению, а не по ключу;
- в рамках этой структуры данных определены все операции, основанные на применении смещения (индексирование, срез);
- кортежи поддерживают неограниченное количество уровней вложенности;
- кортежи хранят указатели на другие объекты, а значит их можно представлять, как массивы ссылок;
- они позволяют очень просто менять местами значения двух переменных.
Зачем использовать кортеж вместо списка?
Тем, кто уже успел познакомиться со списками в Python, может показаться не очевидным смысл использования кортежей. Ведь фактически, списки могут делать всё то же самое и даже больше. Это вполне естественный вопрос, но, разумеется, у создателей языка найдётся на него ответ:
- Неизменяемость - это свойство кортежей, порой, может выгодно отличать их от списков.
- Скорость - кортежи быстрее работают. По причине неизменяемости кортежи хранятся в памяти особым образом, поэтому операции с их элементами выполняются быстрее, чем с компонентами списка.
- Безопасность - неизменяемость также позволяет им быть кандидатами на роль констант. Константы, заданные кортежами, позволяют сделать код более читаемым и безопасным.
Пример кортежей:
Давайте для начала создадим пустой кортеж(tuple):
Теперь добавим в него пару элементов и получим:
Также кортеж может быть из элементов разных типов:
Кортеж может состоять из списка:
К объектам в кортеже можно обращаться, как и к объектам списка, по порядковому номеру:
Подписывайтесь на канал, тут каждый день выходят новые уроки.
Все уроки, а также коды с уроков вы можете найти в моем telegram канале.
Также каждый день в telegram канале появляются полезные книги и пособия с материалом по программированию, а также выходят эффективные фишки, которые значительно упрощают вашу работу с программированием.