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 Итерация

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

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

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

 

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

Без ограничивающих рамок

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

#!/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 включает следующие функции кортежей -

Sr.No. Функция с описанием
1 cmp (кортеж1, кортеж2)

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

2 len (кортеж)

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

3 макс (кортеж)

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

4 min (кортеж)

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

5 кортеж (последовательность)

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