Учебники

Python — кортежи

Кортеж — это последовательность неизменяемых объектов Python. Кортежи — это последовательности, как списки. Различия между кортежами и списками заключаются в том, что они не могут быть изменены в отличие от списков, а кортежи используют круглые скобки, тогда как списки используют квадратные скобки.

Создать кортеж так же просто, как поставить различные значения через запятую. При желании вы можете также поставить эти значения через запятую в скобках. Например —

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

Пустой кортеж записывается в виде двух круглых скобок, не содержащих ничего —

tup1 = ();

Чтобы написать кортеж, содержащий одно значение, вы должны включить запятую, даже если есть только одно значение —

tup1 = (50,);

Как и строковые индексы, индексы кортежей начинаются с 0 и могут быть разрезаны, объединены и т. Д.

Доступ к значениям в кортежах

Чтобы получить доступ к значениям в кортеже, используйте квадратные скобки для нарезки вместе с индексом или индексами, чтобы получить значение, доступное по этому индексу. Например —

#!/usr/bin/python

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0];
print "tup2[1:5]: ", tup2[1:5];

Когда приведенный выше код выполняется, он дает следующий результат —

tup1[0]:  physics
tup2[1:5]:  [2, 3, 4, 5]

Обновление кортежей

Кортежи являются неизменяемыми, что означает, что вы не можете обновлять или изменять значения элементов кортежа. Вы можете взять части существующих кортежей для создания новых кортежей, как показано в следующем примере:

#!/usr/bin/python

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# Following action is not valid for tuples
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;

Когда приведенный выше код выполняется, он дает следующий результат —

(12, 34.56, 'abc', 'xyz')

Удалить элементы кортежа

Удаление отдельных элементов кортежа невозможно. Конечно, нет ничего плохого в том, чтобы собрать еще один кортеж с отброшенными нежелательными элементами.

Чтобы явно удалить весь кортеж, просто используйте оператор del . Например —

#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;

Это дает следующий результат. Обратите внимание на возникшее исключение, это потому, что после кортежа дель Туп больше не существует —

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
   File "test.py", line 9, in <module>
      print tup;
NameError: name 'tup' is not defined

Основные операции кортежей

Кортежи отвечают на операторы + и * так же, как строки; они также означают конкатенацию и повторение, за исключением того, что результатом является новый кортеж, а не строка.

Фактически, кортежи отвечают на все общие операции последовательности, которые мы использовали со строками в предыдущей главе —