Как создавать и использовать кортежи в 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

Связанный: Как использовать циклы For в Python

Использование порядковых номеров

Вы можете перебирать кортеж, используя индексы кортежей. Используйте функцию len (), чтобы найти размер кортежа.

 tup1 = ( 1, 2, 3 )
for index in range(len(tup1)):
print( tup1[index] )

# prints
1
2
3

Повышение эффективности вашего кода

Поскольку структура данных кортежа неизменна, скорость его обработки выше, чем у списков. Таким образом, он обеспечивает оптимизацию программ / проектов Python. Использование этой мощной и универсальной структуры данных (кортежей) в ваших программах на Python поднимет эффективность вашего кода на новый уровень.