Учебники

8) Python Tuple

Что такое Tuple в 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] в кортеже, а для кортежа 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)

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

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

Сравнение начинается с первого элемента каждого кортежа. Если они не сравниваются с =, <или>, то переходят ко второму элементу и так далее.

Он начинается со сравнения первого элемента каждого из кортежей

Давайте изучим это на примере

#Дело 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")

Случай 1: Сравнение начинается с первого элемента каждого кортежа. В этом случае 5> 1, поэтому выход a больше

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

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

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

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

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

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]

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

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

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

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

Резюме :

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

  • Упаковка и распаковка кортежей
    • При упаковке мы помещаем значение в новый кортеж, а при распаковке мы извлекаем эти значения обратно в переменные.
  • Оператор сравнения в Python может работать с кортежами.
  • Использование кортежей в качестве ключей в словарях
    • Кортежи могут быть хэшируемыми, а список — нет
    • Мы должны использовать кортеж в качестве ключа, если нам нужно создать составной ключ для использования в словаре
    • Словарь может возвращать список кортежей, вызывая элементы, где каждый кортеж является парой ключ-значение
  • Кортежи являются неизменяемыми и не могут быть удалены. Вы не можете удалять или удалять элементы из кортежа. Но полностью удалить кортеж можно с помощью ключевого слова «del»
  • Чтобы извлечь определенные наборы подэлементов из кортежа или списка, мы используем эту уникальную функцию, называемую нарезкой