Кортежи Python — упаковка, распаковка, сравнение, нарезка, удаление, ключи

Кортежи Python - упаковка, распаковка, сравнение, нарезка, удаление, ключи

От автора: что такое кортеж в Python? Кортеж Python подобен списку — это последовательность неизменяемых объектов. Разница между списком и кортежем заключается в том, что список объявляется в квадратных скобках и может быть изменен, в то время как кортеж объявляется в скобках и не может быть изменен. Однако вы можете взять части существующих кортежей для создания новых кортежей.

Синтаксис кортежей

Tup = ('Jan','feb','march')

Чтобы написать пустой кортеж, вам нужно указать две скобки, не содержащих ничего.

tup1 = ();

Для написания кортежа для одного значения вам необходимо включить запятую, даже если в нем есть только одно значение. Также в конце нужно добавить точку с запятой, как показано ниже.

Tup1 = (50,);

Индексы кортежей начинаются с 0, и их можно объединять, разделять и так далее.

В этом руководстве мы рассмотрим:

Упаковку и распаковку кортежей

Сравнение кортежей

Использование кортежей в качестве ключей в словарях

Удаление кортежей

Разделение кортежей

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

Преимущества кортежа над списком

Назначение кортежа

В Python есть функция назначения кортежей, которая позволяет назначать более одной переменной одновременно. Здесь мы присвоили кортежу 1 информацию о лицах, такую как имя, фамилию, год рождения и т. д., и мы создали еще один кортеж 2 со значениями в нем, например, числа (1,2,3,…., 7).

Например: (имя, фамилия, год рождения, любимый фильм и год, профессия, место рождения) = Роберт

Вот код:

tup1 = ('Robert', 'Carlos','1965','Terminator 1995', 'Actor','Florida');
tup2 = (1,2,3,4,5,6,7);
print(tup1[0])
print(tup2[1:4])

Кортеж 1 включает в себя список данных Роберта

Кортеж 2 включает в себя список чисел

Мы вызываем значение [0] для кортежа 1, а для кортежа 2 мы вызываем значения от 1 до 4

Запустите код — он дает имя Robert для первого кортежа, в то время как для второго кортежа он дает числа (2,3 и 4)

Упаковка и распаковка

При упаковке мы помещаем значение в новый кортеж, а при распаковке мы извлекаем эти значения обратно в переменные.

x = ("Guru99", 20, "Education") # tuple packing
(company, emp, profile) = x # tuple unpacking
print(company)
print(emp)
print(profile)

Сравнение кортежей

Сравнение начинается с первого элемента каждого кортежа, если они равны сравнение продолжается по следующим элементам. Давайте рассмотрим это на примере:

#случай 1

a=(5,6)
b=(1,4)
if (a>b):print("a is bigger")
else: print("b is bigger")

#случай 2

a=(5,6)
b=(5,4)
if (a>b):print("a is bigger")
else: print ("b is bigger")

#случай 3

a=(5,6)
b=(6,4)
if (a>b):print("a is bigger")
else: print("b is bigger")

Случай 1: Сравнение начинается с первого элемента каждого кортежа. В этом случае 5> 1, поэтому вывод «a is bigger».

Случай 2: Сравнение начинается с первого элемента каждого кортежа. В этом случае 5>5 является неопределимым. Итак, переходим к следующему элементу. 6>4, поэтому вывод «a is bigger».

Случай 3: Сравнение начинается с первого элемента каждого кортежа. В этом случае 5>6 ложно. Таким образом, вывод » b is bigger».

Использование кортежей в качестве ключей в словарях

Поскольку кортежи являются хешируемыми, а список — нет, мы должны использовать кортеж в качестве ключа, если нам нужно создать составной ключ для использования в словаре.

Пример: мы столкнемся с составным ключом, если нам понадобится создать телефонный справочник, который сопоставляет, имя, фамилию, пары телефонных номеров и т. д. Предполагая, что мы объявили переменные как последнее и первое число, мы могли бы написать выражение для словаря, как показано ниже:

directory[last,first] = number

Внутри скобок выражение является кортежем. Мы могли бы использовать присваивание кортежей в цикле for для прохождения по этому словарю.

for last, first in directory: print first, last, directory[last, first]

Этот цикл проходит ключи в каталоге, которые являются кортежами. Он присваивает элементам каждого кортежа последнее и первое число, а затем выводит имя и соответствующий номер телефона.

Кортежи и словарь

Словарь может возвращать список кортежей, вызывая элементы, где каждый кортеж является парой ключ-значение.

a = {'x':100, 'y':200}
b = list(a.items())
print(b)

Удаление кортежей

Кортежи являются неизменяемыми и не могут быть удалены, но полностью удалить кортеж можно с помощью ключевого слова «del».

Разделение кортежей

Чтобы извлечь определенные наборы подэлементов из кортежа или списка, мы используем эту уникальную функцию, называемую нарезкой. Нарезка применима не только к кортежу, но и к массиву и списку.

x = ("a", "b","c", "d", "e")
print(x[2:4])

Вывод этого кода будет (‘c’, ‘d’).

Вот код Python 2 для всех приведенных выше примеров:

tup1 = ('Robert', 'Carlos','1965','Terminator 1995', 'Actor','Florida');
tup2 = (1,2,3,4,5,6,7);
print tup1[0]
print tup2[1:4] #Packing and Unpacking
x = ("Guru99", 20, "Education") # tuple packing
(company, emp, profile) = x # tuple unpacking
print company
print emp
print profile #Comparing tuples
#case 1
a=(5,6)
b=(1,4)
if (a>b):print "a is bigger"
else: print "b is bigger" #case 2
a=(5,6)
b=(5,4)
if (a>b):print "a is bigger"
else: print "b is bigger" #case 3
a=(5,6)
b=(6,4)
if (a>b):print "a is bigger"
else: print "b is bigger" #Tuples and dictionary
a = {'x':100, 'y':200}
b = a.items()
print b #Slicing of Tuple
x = ("a", "b","c", "d", "e")
print x[2:4]

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

Для выполнения различных задач кортеж позволяет использовать множество встроенных функций, таких как all(), any(), enumerate(), max(), min(), sorted(), len(), tuple() и т. д.

Преимущества кортежа над списком

Итерация по кортежу быстрее, чем по списку, так как кортежи неизменны.

Кортежи, состоящие из неизменяемых элементов, могут использоваться в качестве ключа для словаря, что невозможно со списком

Если у вас есть данные, которые являются неизменяемыми, реализация их как кортежа гарантирует, что они остаются защищенными от записи

Заключение

В Python есть функция назначения кортежей, которая позволяет вам назначать более одной переменной одновременно.

Упаковка и распаковка кортежей

При упаковке мы помещаем значение в новый кортеж, а при распаковке мы извлекаем это значение обратно в переменную.

Оператор сравнения в Python может работать с кортежами.

Использование кортежей в качестве ключей в словарях:

Кортежи могут быть хэшируемыми, а список — нет

Мы должны использовать кортеж в качестве ключа, если нам нужно создать составной ключ для использования в словаре

Словарь может возвращать список кортежей, вызывая элементы, где каждый кортеж является парой ключ-значение

Кортежи являются неизменяемыми и не могут быть удалены, но полностью удалить кортеж можно с помощью ключевого слова «del».

Чтобы извлечь определенные наборы подэлементов из кортежа или списка, мы используем уникальную функцию, называемую нарезкой

Источник: https://www.guru99.com

Редакция: Команда webformyself.