Учебники

Python — кортежи

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

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

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

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

tup1 = ();

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

tup1 = (50,);

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

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

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

Live Demo

#!/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]

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

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

Live Demo

#!/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 . Например —

Live Demo

#!/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

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

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

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

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

Индексирование, нарезка и матрицы

Поскольку кортежи являются последовательностями, индексирование и секционирование для кортежей работают так же, как и для строк. Предполагая следующий ввод —

L = ('spam', 'Spam', 'SPAM!')

Выражение Python Результаты Описание
L [2] ‘СПАМ!’ Смещения начинаются с нуля
L [-2] ‘Спам’ Отрицательный: считать справа
L [1:] [«Спам», «СПАМ!»] Нарезка выборок разделов

Без ограничителей

Любой набор из нескольких объектов, разделенных запятыми, записанный без идентифицирующих символов, т. Е. Скобки для списков, скобки для кортежей и т. Д., По умолчанию кортежи, как указано в этих коротких примерах —

Live Demo

#!/usr/bin/python

print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;

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

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

Встроенные функции кортежей

Python включает в себя следующие функции кортежей —

Сравнивает элементы обоих кортежей.

Дает общую длину кортежа.

Возвращает элемент из кортежа с максимальным значением.

Возвращает элемент из кортежа с минимальным значением.

Преобразует список в кортеж.