Как создавать и использовать кортежи в Python
Кортеж – это набор неизменяемых объектов Python. Он может содержать элементы любого произвольного типа данных (целое число, строка, число с плавающей запятой, список и т. Д.), Что делает его гибкой и мощной структурой данных. Он является частью основного языка Python и широко используется в программах и проектах Python.
Создание кортежа
Кортеж в Python можно создать, заключив все элементы, разделенные запятыми, в круглые скобки () .
t1 = (1, 2, 3, 4)
t2 = ("Make", "Use", "Of")
t3 = (1.2, 5.9, 5.4, 9.3)
Элементы кортежа неизменяемы и упорядочены. Он допускает повторяющиеся значения и может иметь любое количество элементов. Вы даже можете создать пустой кортеж. Элементы кортежа могут иметь любой тип данных (целое число, число с плавающей запятой, строки, кортеж и т. Д.).

Создание пустого кортежа
Пустой кортеж можно создать, используя пустые открывающие и закрывающие круглые скобки.
emptyTuple = ()
Создание кортежа с одним элементом
Чтобы создать кортеж с одним элементом, вам нужно добавить запятую после элемента, чтобы Python распознал его как кортеж.
# t1 is a tuple
t1 = ( 3.14, )
print( type(t1) )
# prints
<class 'tuple'>
# t2 is not a tuple
t2 = ( 3.14 )
print( type(t2) )
# prints
<class 'float'>
Примечание: функция type () возвращает тип класса объекта, переданного в качестве параметра.
Отсутствие запятой после элемента приводит к типу класса t2 как 'float', поэтому обязательно использовать запятую после элемента при создании кортежа с одним значением.
Создание кортежа с разными типами данных
Элементы кортежа могут быть любого типа данных. Эта функция делает кортеж универсальным.
tup1 = ( 'MUO', True, 3.9, 56, [1, 2, 3] )
print( tup1 )
# prints
('MUO', True, 3.9, 56, [1, 2, 3])
Создание кортежа с использованием конструктора tuple ()
Кортежи также можно создавать с помощью конструктора tuple () . Используя конструктор tuple (), вы можете преобразовывать последовательности, такие как список / словарь, в кортеж.
tup1 = tuple( (1, 2, 3) )
print( tup1 )
# prints
(1, 2, 3)
Создание вложенного кортежа
Кортежи можно легко вкладывать в другие кортежи. Вы можете вложить кортеж на любой желаемый уровень.
tup1 = (1, 2, 3)
tup2 = ( 'Hello', tup1, 45 )
print( tup2 )
# prints
('Hello', (1, 2, 3), 45)
Доступ к элементам в кортеже
Вы можете получить доступ к элементам кортежа, используя номер индекса в квадратных скобках. Номер индекса начинается с 0. Кортеж также поддерживает отрицательную индексацию:
- -1: указывает на последний элемент
- -2: указывает на второй последний элемент и т. Д.

tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
print( tup1[0] )
print( tup1[5] )
print( tup1[-1] )
print( tup1[-9] )
# prints
M
S
F
M
Нарезка кортежа
Вы можете получить доступ к диапазону элементов в кортеже, используя оператор двоеточие : . Tuple также поддерживает операцию нарезки с использованием отрицательных индексов.
tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
# Prints elements from index 1(included) to index 6(excluded)
print( tup1[1:6] )
# Prints elements from start to index 8(excluded)
print( tup1[:8] )
# Prints elements from index 3(included) to the end
print( tup1[3:] )
# Prints elements from index -4(included) to index -1(excluded)
print( tup1[-4:-1] )
# prints
('A', 'K', 'E', 'U', 'S')
('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O')
('E', 'U', 'S', 'E', 'O', 'F')
('S', 'E', 'O')
Проверка наличия элемента в кортеже
Вы можете проверить, существует ли элемент в кортеже, используя ключевое слово in .
tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
if 'M' in tup1:
print("Yes, the element M exists in the tuple")
else:
print("Element not found in the tuple !!")
# prints
Yes, the element M exists in the tuple
Обновление кортежей
Поскольку кортежи неизменны, изменить их значение невозможно. Python выдает ошибку TypeError, если вы попытаетесь обновить кортеж.
tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
tup1[0] = 'Z'
# Following error is thrown
tup1[0] = 'Z'
TypeError: 'tuple' object does not support item assignment
Но есть хитрость, если вы хотите обновить кортеж.
Изменение значения элементов кортежа с помощью списков
Вы можете изменить значение элементов в вашем кортеже, используя списки в Python . Сначала вам нужно преобразовать кортеж в список. Затем измените список по своему усмотрению. Наконец, преобразуйте список обратно в кортеж.
tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp[0] = 4
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(4, 2, 3)
Добавление новых элементов в кортеж с помощью списков
Поскольку кортежи неизменяемы, невозможно добавлять новые элементы в кортеж. Python выдаст ошибку как:
AttributeError: 'tuple' object has no attribute 'append
Опять же, вы можете использовать наш прием (использование списков), чтобы справиться с этим. Сначала преобразуйте кортеж в список. Затем добавьте в список новые элементы. Наконец, преобразуйте список в кортеж.
Примечание. Метод append () используется в Python для добавления нового элемента в конец списка.
tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp.append(4)
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(1, 2, 3, 4)
Операция удаления кортежей
Поскольку кортежи неизменяемы, невозможно удалить какой-либо элемент из кортежа. Если вы хотите удалить весь кортеж, это можно сделать с помощью ключевого слова del .
tup1 = ( 1, 2, 3 )
del tup1
Но вы можете использовать тот же прием (со списками), который вы использовали для изменения и добавления элементов кортежа.
Удаление элементов из кортежа с помощью списков
Элементы могут быть удалены из кортежа с помощью списков в 3 простых шага:
Шаг 1. Преобразуйте кортеж в список.
Шаг 2. Удалите элементы из списка с помощью метода remove ()
Шаг 3: преобразовать список в кортеж.
tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp.remove(1)
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(2, 3)
Упаковка и распаковка кортежей
При создании кортежа присваиваются значения. Это называется упаковкой кортежа .
# Example of packing a tuple
tup1 = ( 1, 2, 3)
В то время как извлечение значений обратно в переменные называется распаковкой кортежа .
# Example of unpacking a tuple
tup1 = ( 1, 2, 3 )
( one, two, three ) = tup1
print( one )
print( two )
print( three )
# prints
1
2
3
Цикл с кортежами Python
Кортежи – это повторяющиеся контейнеры, как и списки в Python. Вы можете легко перебирать элементы кортежа.
Использование for Loop
Цикл for в Python работает путем перебора элементов контейнера.
# Looping using for loop
tup1 = ( 1, 2, 3 )
for element in tup1:
print( element )
# prints
1
2
3
Использование порядковых номеров
Вы можете перебирать кортеж, используя индексы кортежей. Используйте функцию len (), чтобы найти размер кортежа.
tup1 = ( 1, 2, 3 )
for index in range(len(tup1)):
print( tup1[index] )
# prints
1
2
3
Повышение эффективности вашего кода
Поскольку структура данных кортежа неизменна, скорость его обработки выше, чем у списков. Таким образом, он обеспечивает оптимизацию программ / проектов Python. Использование этой мощной и универсальной структуры данных (кортежей) в ваших программах на Python поднимет эффективность вашего кода на новый уровень.