Кортежи
Кортеж - это последовательность, которая очень напоминает список. Главная разница между кортежами и списками состоит в том, что кортежи являются неизменяемыми последовательностями. Это означает, что после того как кортеж создан, его невозможно изменить.
Элементы кортежа заключаются в круглые скобки
tpl = (1, 2, 3, 4, 5)
print(tpl)
(1, 2, 3, 4, 5)
Кортежи можно обходить с помощью циклов, а также они поддерживают индексацию
tpl = (1, 2, 3, 4, 5)
for i in tpl:
print(i)
for index in range(len(tpl)):
print(tpl[index])
По сути, кортежи поддерживают все те же операции, что и списки, за исключением тех, которые изменяют содержимое списка. Кортежи поддерживают следующие операции:
доступ к элементу по индексу (только для получения значений элементов);
различные функции, в частности
index()
;встроенные функции, в частности
len()
,min()
иmax()
;срезы;
оператор
in
;операторы + и *;
Кортежи не поддерживают такие методы как append()
, remove()
, insert()
, reverse()
и sort()
.
Зачем нужны кортежи?
Если единственным различием между списками и кортежами является их способность изменять свои значения, то можно задаться вопросом: зачем нужны кортежи?
Одной из причин, почему существуют кортежи, является производительность. Обработка кортежа выполняется быстрее, чем обработка списка, и поэтому кортежи - это хороший вариант, когда обрабатывается большой объем данных, и эти данные не будут изменяться. Еще одна причина состоит в том, что кортежи безопасны. Поскольку содержимое кортежа изменять нельзя, в нем можно хранить данные, оставаясь в уверенности, что они не будут случайно или каким-либо иным образом изменены в программе.
Кроме того, в Python существуют определенные операции, которые требуют применения кортежа. По мере освоения Python, мы будем чаще сталкиваться с кортежами.
Преобразование между списками и кортежами
Встроенная функция list()
может применяться для преобразования кортежа в список, а встроенная функция tuple()
- для преобразования списка в кортеж.
tpl = (1, 2, 3, 4, 5)
print(type(tpl)) # <class 'tuple'>
lst = list(tpl)
print(type(lst)) # <class 'list'>
tpl2 = tuple(lst)
print(type(tpl2)) # <class 'tuple'>
Last updated
Was this helpful?