Кортежи

Кортеж - это последовательность, которая очень напоминает список. Главная разница между кортежами и списками состоит в том, что кортежи являются неизменяемыми последовательностями. Это означает, что после того как кортеж создан, его невозможно изменить.

Элементы кортежа заключаются в круглые скобки

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