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;

Это дает следующий результат. Обратите внимание на возникшее исключение, потому что послеdel 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

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

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

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

Выражение Python Полученные результаты Описание
len ((1, 2, 3)) 3 Длина
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) Конкатенация
('Привет!',) * 4 («Привет!», «Привет!», «Привет!», «Привет!») Повторение
3 в (1, 2, 3) Правда Членство
для x в (1, 2, 3): выведите x, 1 2 3 Итерация