Учебники

Python 3 — кортежи

Кортеж — это последовательность неизменяемых объектов 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/python3

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/python3

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/python3

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): print (x, end = ») 1 2 3 итерация

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

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

T=('C++', 'Java', 'Python')

Выражение Python Результаты Описание
T [2] ‘Python’ Смещения начинаются с нуля
Т [-2] ‘Джава’ Отрицательный: считать справа
T [1:] («Java», «Python») Нарезка выборок разделов

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

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

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

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

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

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

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

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

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