Мы уже познакомились с таким видом коллекций, как списки, сегодня же мы разберем кортежи. Начнем!
Что такое кортежи?
Кортеж так же, как и список, является коллекцией, но в отличие от него он неизменяем. К неизменяемым объектам помимо кортежей относятся числа и строки.
Если мы создадим переменную и зададим ей несколько значений, а затем выведем ее на экран, то увидим эти значения в круглых скобках (Рис.1). Это и есть кортеж (tuple).
(Рис.1)
Мы можем прописывать значения как и сразу в скобках, так и без них (Рис.2). Можем также прописать команду tuple, результат будет тот же.
(Рис.2)
Если мы выведем тип нашей переменной, то увидим, что она относится к типу tuple, то есть кортеж (Рис.3).
(Рис.3)
Списки и кортежи. Сходства и различия.
Как и говорилось раннее, кортеж относится к неизменяемым типам данных, тем не менее внутри он может содержать изменяемые типы. Если обобщить, то кортеж – это неизменяемая упорядоченная коллекция, которая может содержать в себе разные типы данных.
На прошлом занятии мы на примерах убедились, что списки могут содержать одновременно и числа, и логический тип данных и т. д. Так же и в кортежах могут находиться объекты разных видов.
Например, заменим пару элементов в нашем первом кортеже и выведем (Рис.4).
(Рис.4)
Продолжая тему сходства кортежей и списков, надо сказать, что у кортежей есть и индексация, которая работает по той же аналогии, что и в списках.
То есть, если мы возьмем индекс [0] у нашего кортежа, то нам выдаст элемент «1» (Рис.5), здесь для нас ничего нового.
(Рис.5)
Однако, если мы захоти изменить этот элемент, например на число 200 попросим вывести кортеж на экран, то столкнемся с ошибкой (Рис.6).
(Рис.6)
Ошибка буквально сообщает нам, что кортеж не поддерживает обращение по элементам.
Зачем нужны кортежи?
Для чего же нужен кортеж, если его нельзя редактировать или как-либо изменять? Вообще, сам по себе кортеж весьма полезная вещь, хоть и встречается реже списка.
Зачастую он используется в качестве хранилища, например, для какого-то списка, который мы ни коим образом не хотим трогать, то есть нам нужно чтобы он оставался неизменным.
Еще одна его особенность состоит в том, что он элементарно занимает в памяти меньше места, чем список. Например, создадим равноценный нашему кортежу список и проверим, сколько занимает каждый из них в памяти с помощью команды __sizeof__ (Рис.7). Как мы видим, кортеж действительно занимает меньше места чем список, потому его можно также использовать с целью экономии памяти.
(Рис.7)
Операции с кортежами
Мы уже упоминали, что несмотря на неизменяемость самого кортежа, в себе он может хранить какие-то изменяемые объекты. Для примера создадим кортеж, внутри которого будет список и выведем его (Рис.8).
(Рис.8)
Теперь попробуем изменить элементы этого внутреннего списка. Для этого обратимся по порядковому номеру, то есть по индексу [0] к первому элементу кортежа - списку, а затем по второму индексу [0] обратимся к первому элементу уже самого списка. Попробуем присудить ему новое значение – число 2 (Рис.9). Не забываем про команду print и видим, что теперь в списке внутри кортежа первый элемент не «1», а «2».
(Рис.9)
Помимо этого, кортежи поддерживают два вида операций – конкатенацию и умножение.
Конкатенация, как мы помним, у нас фигурировала в работе со строками, она обозначала сложение двух строк. Здесь мы можем сделать то же самое. К примеру, мы можем прибавить к нашему кортежу другой кортеж и элементы из второго кортежа прибавятся к нашему в конце (Рис.10).
(Рис.10)
Еще мы можем встретить умножение. Допустим у нас есть кортеж из элементов «1» и «2», и мы умножим его на 3 (Рис.11). Как мы видим, элементы внутри кортежа теперь продублированы 3 раза.
(Рис.11)
Это единственные операции, поддерживаемые кортежами. Но мы все еще не можем добавить какой-то отдельно взятый элемент или изменить какой-то элемент внутри кортежа.
По скольку я являюсь фрилансером, берусь за выполнение небольших проектов, и оказываю помощь в решении домашних заданий связанных с написанием кода на данном языке. Все подробности в моём Telegram канале : https://t.me/pythonrazrabotchik , подписывайтесь, там будет очень много интересного.