- Кортеж в Python
- Синтаксис и примеры
- Доступ к значению в кортеже
- Обновление и удаление элементов
- Некоторые из встроенных функций
- Кортежи (Tuple)
- Создание кортежа в Python
- Индексирование и нарезка в кортеже Python
- Отрицательная индексация в кортеже (Tuple) Python
- Удаление кортежа (Tuple) в Python
- Основные операции с кортежами
- Встроенные функции Python Tuple
- Где используется кортеж (Tuple)?
- Отличие кортежа (Tuple) от списка (List)
Кортеж в Python
Сегодня мы говорим о другом встроенном в Python типе данных – Tuples. Кортеж в Python используется для хранения нескольких элементов в упорядоченном и неизменяемом виде.
Если вам нужно, чтобы данные можно было изменять, вам нужен список в Python. Теперь, без дальнейших задержек, перейдем непосредственно к нашему типу данных Tuple.
Синтаксис и примеры
Кортежи в Python обозначаются простыми скобками. Вот пример определения кортежа:
SampleTuple = ("Element1", "Element2", "Element3")
Вот еще несколько примеров определений кортежей:
#an empty tuple emptyTup=() #tuple of integers intTup=(1,2,3,4,5)
Наконец, вам не нужно придерживаться одного типа данных при добавлении элементов в кортежи:
#Tuples with multiple datatypes multiTuple = ("This is a string", 1, True) print(multiTuple)
Если вы запустите приведенный выше код, у вас не возникнет проблем с получением выходного кортежа:
Доступ к значению в кортеже
Вы можете получить доступ к кортежам с помощью индексов. Индекс первого элемента равен 0, а последний элемент имеет индекс n-1.
#tuple of string strTup=('This','is','a','tuple') #accessing first element print(strTup[0]) #accessing second element print(strTup[1]) #accessing fourth element print(strTup[3])
Результат приведенного выше кода будет таким, как показано ниже:
Кортежи также поддерживают отрицательную индексацию, когда последний элемент кортежа имеет индекс -1.
#tuple of string strTup=('This','is','a','tuple') #accessing first element from the right print(strTup[-1]) #accessing second element from the right print(strTup[-2]) #accessing second element from the right print(strTup[-4])
Результат будет таким, как показано ниже.
Обновление и удаление элементов
Поскольку кортежи являются неизменяемыми объектами, определенные элементы не могут быть изменены или обновлены. Но при необходимости вы можете объединить два кортежа в третий.
Точно так же удаление отдельных элементов невозможно, но с помощью ключевого слова del вы можете удалить кортеж из своей программы.
#tuple 1 tup1=(1,2,3) #tuple 2 tup2=(4,5) #tuple 3 tup3=tup1+tup2 print(tup3) #to delete tuple 1 del tup1 #this will show a traceback as tup1 is deleted. So it is not defined now print(tup1)
Приведенный выше код даст вам результат, как показано на скриншоте здесь:
Некоторые из встроенных функций
Кортежи предлагают множество встроенных функций, которые сокращают количество требуемых строк кода. Давайте посмотрим на некоторые функции, предлагаемые кортежами.
#a string tuple tup=('this','is','a','tuple') #len(tuple) gives total length of a tuple print(len(tup)) #max(tuple) gives maximum element of a tuple print(max(tup)) #min(tuple) gives minimum element of a tuple print(min(tup)) #count(x) gives number of occurances of x in the tuple print(tup.count('is')) #index(x) gives index of first occurances of x in the tuple print(tup.index('a'))
Вы должны получить следующий результат, если запустите приведенный выше код.
Кортежи (Tuple)
Кортеж Python используется для хранения последовательности неизменяемых объектов Python. Кортеж похож на списки (List), поскольку значение элементов, хранящихся в списке, может быть изменено, в то время как кортеж неизменяем, и значение элементов, хранящихся в кортеже, не может быть изменено.
Создание кортежа в Python
Кортеж можно записать как набор значений, разделенных запятыми ( , ), заключенных в круглые скобки () . Круглые скобки необязательны, но их использование является хорошей практикой. Кортеж может быть определен следующим образом.
T1 = (101, "Peter", 22) T2 = ("Apple", "Banana", "Orange") T3 = 10,20,30,40,50 print(type(T1)) print(type(T2)) print(type(T3))
Примечание: Кортеж, который создается без использования круглых скобок, также известен как упаковка кортежа.
Пустой кортеж может быть создан следующим образом.
Создание кортежа с одним элементом немного отличается. Нам нужно поставить запятую после элемента, чтобы объявить кортеж.
tup1 = ("JavaTpoint") print(type(tup1)) #Creating a tuple with single element tup2 = ("JavaTpoint",) print(type(tup2))
Кортеж индексируется так же, как и списки. Доступ к элементам кортежа можно получить, используя их конкретное значение индекса.
tuple1 = (10, 20, 30, 40, 50, 60) print(tuple1) count = 0 for i in tuple1: print("tuple1[%d] = %d"%(count, i)) count = count+1
(10, 20, 30, 40, 50, 60) tuple1[0] = 10 tuple1[1] = 20 tuple1[2] = 30 tuple1[3] = 40 tuple1[4] = 50 tuple1[5] = 60
tuple1 = tuple(input("Enter the tuple elements . ")) print(tuple1) count = 0 for i in tuple1: print("tuple1[%d] = %s"%(count, i)) count = count+1
Enter the tuple elements . 123456 ('1', '2', '3', '4', '5', '6') tuple1[0] = 1 tuple1[1] = 2 tuple1[2] = 3 tuple1[3] = 4 tuple1[4] = 5 tuple1[5] = 6
Индексирование и нарезка в кортеже Python
Индексация и нарезка в кортеже аналогичны спискам. Индексация в кортеже начинается с 0 и продолжается до length(tuple) — 1 .
Доступ к элементам кортежа можно получить с помощью оператора index [] . Python также позволяет использовать оператор двоеточия для доступа к нескольким элементам в кортеже.
Для детального понимания индексации и нарезки рассмотрим следующее изображение.
Рассмотрим следующий пример:
tup = (1,2,3,4,5,6,7) print(tup[0]) print(tup[1]) print(tup[2]) # It will give the IndexError print(tup[8])
1 2 3 tuple index out of range
В приведенном выше коде кортеж имеет 7 элементов, которые обозначают от 0 до 6. Мы попытались получить доступ к элементу вне кортежа, что вызвало ошибку IndexError .
tuple = (1,2,3,4,5,6,7) #element 1 to end print(tuple[1:]) #element 0 to 3 element print(tuple[:4]) #element 1 to 4 element print(tuple[1:5]) # element 0 to 6 and take step of 2 print(tuple[0:6:2])
(2, 3, 4, 5, 6, 7) (1, 2, 3, 4) (1, 2, 3, 4) (1, 3, 5)
Отрицательная индексация в кортеже (Tuple) Python
Доступ к элементу кортежа также может осуществляться с помощью отрицательной индексации. Индекс -1 обозначает самый правый элемент, -2 — второй последний элемент и так далее.
Элементы слева направо обходятся с использованием отрицательной индексации. Рассмотрим следующий пример:
tuple1 = (1, 2, 3, 4, 5) print(tuple1[-1]) print(tuple1[-4]) print(tuple1[-3:-1]) print(tuple1[:-1]) print(tuple1[-2:])
Удаление кортежа (Tuple) в Python
В отличие от списков, элементы кортежа не могут быть удалены с помощью ключевого слова del , поскольку кортежи неизменяемы. Чтобы удалить весь кортеж, мы можем использовать ключевое слово del вместе с именем кортежа.
Рассмотрим следующий пример.
tuple1 = (1, 2, 3, 4, 5, 6) print(tuple1) del tuple1[0] print(tuple1) del tuple1 print(tuple1)
(1, 2, 3, 4, 5, 6) Traceback (most recent call last): File "tuple.py", line 4, in print(tuple1) NameError: name 'tuple1' is not defined
Основные операции с кортежами
Такие операторы, как конкатенация ( + ), повторение ( * ), вхождения ( in ) работают так же, как и со списком. Для более детального рассмотрения рассмотрим следующую таблицу.
Допустим, объявлены кортеж t = (1, 2, 3, 4, 5) и кортеж t1 = (6, 7, 8, 9) .
Оператор | Описание |
---|---|
* | Оператор повторения позволяет повторять элементы кортежа несколько раз. |
+ | Конкатенирует кортеж, упомянутый по обе стороны от оператора. |
in | Возвращает true, если определенный элемент существует в кортеже, иначе false |
for in | Цикл for используется для итерации по элементам кортежа. |
Встроенные функции Python Tuple
Функция | Описание |
---|---|
cmp(tuple1, tuple2) | Сравнивает два кортежа и возвращает true, если кортеж1 больше кортежа2, иначе false. |
len(tuple) | Вычисляет длину кортежа. |
max(tuple) | Возвращает максимальный элемент кортежа |
min(tuple) | Возвращает минимальный элемент кортежа. |
tuple(seq) | Преобразует указанную последовательность в кортеж. |
Где используется кортеж (Tuple)?
Использование кортежа вместо списка используется в следующем сценарии.
- Использование кортежа вместо списка дает нам четкое представление о том, что данные кортежа являются постоянными и не подлежат изменению.
- Кортеж может имитировать словарь без ключей. Обратите внимание на следующую вложенную структуру, которую можно использовать в качестве словаря.
[(101, "John", 22), (102, "Mike", 28), (103, "Dustin", 30)]
Отличие кортежа (Tuple) от списка (List)
Список (List) | Кортеж (Tuple) |
---|---|
Синтаксис списка обозначается символом [] . | Синтаксис кортежа обозначается знаком () |
Список является изменяемым. | Кортеж является неизменяемым. |
Список имеет переменную длину. | Кортеж имеет фиксированную длину. |
Список обеспечивает большую функциональность, чем кортеж. | Кортеж обеспечивает меньшую функциональность, чем список. |
Список используется в сценарии, в котором нам нужно хранить простые коллекции без ограничений, где значение элементов может быть изменено. | Кортеж используется в случаях, когда нам нужно хранить коллекции только для чтения, т.е. значение элементов не может быть изменено. Его можно использовать в качестве ключа внутри словаря. |
Списки занимают больше памяти, чем кортежи. | Кортежи более эффективны с точки зрения использования памяти благодаря своей неизменяемости. |