Tuple питон: Python — Кортежи (Tuple)

Содержание

Python — Кортежи (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))  

Вывод:

<class 'tuple'>
<class 'tuple'>
<class 'tuple'>

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

Пустой кортеж может быть создан следующим образом.

T4 = ()

Создание кортежа с одним элементом немного отличается. Нам нужно поставить запятую после элемента, чтобы объявить кортеж.

tup1 = ("JavaTpoint")  
print(type(tup1))  
#Creating a tuple with single element   
tup2 = ("JavaTpoint",)  
print(type(tup2))  

Вывод:

<class 'str'>
<class 'tuple'>

Кортеж индексируется так же, как и списки. Доступ к элементам кортежа можно получить, используя их конкретное значение индекса.

Пример — 1

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

Пример — 2

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:]) 

Вывод:

5
2
(3, 4)
(1, 2, 3, 4)
(4, 5)

Удаление кортежа (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 <module>
    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)?

Использование кортежа вместо списка используется в следующем сценарии.

  1. Использование кортежа вместо списка дает нам четкое представление о том, что данные кортежа являются постоянными и не подлежат изменению.

  2. Кортеж может имитировать словарь без ключей. Обратите внимание на следующую вложенную структуру, которую можно использовать в качестве словаря.

[(101, "John", 22), (102, "Mike", 28),  (103, "Dustin", 30)]  

Отличие кортежа (Tuple) от списка (List)

Список (List)Кортеж (Tuple)
Синтаксис списка обозначается символом [].Синтаксис кортежа обозначается знаком
()
Список является изменяемым.Кортеж является неизменяемым.
Список имеет переменную длину.Кортеж имеет фиксированную длину.
Список обеспечивает большую функциональность, чем кортеж.Кортеж обеспечивает меньшую функциональность, чем список.
Список используется в сценарии, в котором нам нужно хранить простые коллекции без ограничений, где значение элементов может быть изменено.Кортеж используется в случаях, когда нам нужно хранить коллекции только для чтения, т.е. значение элементов не может быть изменено. Его можно использовать в качестве ключа внутри словаря.
Списки занимают больше памяти, чем кортежи.Кортежи более эффективны с точки зрения использования памяти благодаря своей неизменяемости.

Что такое кортежи и как с ними работать в языке Python

Автор Сергей Ушаков

В прошлый раз мы говорили про методы работы со строками в языке Python. Сегодня поговорим про кортежи Python. Читайте далее про особенности создания, использования и работы с кортежами в популярном языке программирования Python.

Для чего нужны кортежи в Python

Кортеж в Python — это более быстрый и неизменяемый аналог списка. Он очень часто используется для защиты хранимых данных приложения от незапланированных или непреднамеренных изменений. Кортеж также требует выделения значительно меньшего количества памяти. Кортеж представляет собой последовательность элементов (как список), которая не позволяет удалять, добавлять или изменять свое содержимое. Таким образом, каждый кортеж создается только один раз и существует в первоначальном виде на протяжении всего цикла работы приложения.

Как работают кортежи в Python: несколько практических примеров

Существует 2 способа создания кортежа: с помощью встроенной функции tuple() и с помощью круглых скобок  [1]:

 

a = tuple()
type(a)
#tuple
a = ()
type(a)
#tuple

Для наглядности создадим кортеж из одного элемента. Стоит также отметить, что в кортежах между элементами ВСЕГДА ставится запятая (даже если кортеж состоит из одного элемента) [1]:

t = ('s')
type(t)
# Внимание: str!!!
t = ('s',)
type(t)

Вышеприведенная функция tuple() часто используется для создания кортежей из различных других структур данных (например, списков):

data = ["Иван", 37, "Яндекс"]
t = tuple(data)
print(t)
#('Иван', 37, 'Яндекс')

Для того, чтобы вывести отдельный элемент кортежа, достаточно указать его индекс [1]:

print(t[0])
print(t[1])
print(t[2])
# Иван
#37
#Яндекс

Но так как кортеж является неизменяемой (immutable) структурой, у нас не получится изменить его содержимое. Следовательно, следующая попытка исполнения кода выдаст ошибку [1]:

t[0] = "Андрей"

 

Ошибка при попытке изменить содержимое кортежа

Однако, при необходимости, мы можем разложить кортеж на отдельные переменные для дальнейшей работы с ними [1]:

data = ["Иван", 37, "Яндекс"]
name, age, company = tuple(data)
print(name) # Иван
print(age) #37
print(company) # Яндекс

Таким образом, благодаря поддержке кортежей, Python обеспечивает разработчика гарантией защиты данных от непреднамеренных изменений в приложении, что повышает его отказоустойчивость. Это делает Python универсальным и надежным средством для работы с производительными приложениями, а также с Big Data обработкой.

Computer vision на Python

Освоить Python на профессиональном уровне в разработчика различных приложений и прочих прикладных областях Data Science вы сможете на практических курсах по Python в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

  • DPREP: Подготовка данных для Data Mining на Python
  • Разработка и внедрение ML-решений
  • Графовые алгоритмы. Бизнес-приложения
  • Нейронные сети на Python
  • NLP с Python

Записаться на курс

Смотреть раcписание

 

Источники

  1. https://metanit.com/python/tutorial/3.2.php

 

Python Tuples — GeeksforGeeks

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

Значения кортежа синтаксически разделяются запятыми. Хотя это и не обязательно, чаще кортеж определяют, заключая последовательность значений в круглые скобки. Это помогает легче понять кортежи Python.

Создание кортежа

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

Примечание: Создание кортежа Python без использования круглых скобок известно как упаковка кортежей.

Программа Python для демонстрации добавления элементов в Tuple.

Python3

Tuple1 = ()

печать ( "Initial empty Tuple: " )

print (Tuple1)

 

Tuple1 = ( 'Geeks' , 'For' )

print ( "\nTuple with the use of String: " )

print (Tuple1)

 

list1 = [ 1 , 2 , 4 , 5 , 6 ]

print ( "\nTuple using List: " )

print ( tuple (list1))

 

Tuple1 = tuple ( 'Geeks' )

print ( "\nTuple with the use of function: " )

print (Tuple1)

Output:  

 Initial empty Tuple:
()
Кортеж с использованием String:
(«Вундеркинды», «Для»)
Кортеж с использованием списка:
(1, 2, 4, 5, 6)
Кортеж с использованием функции:
("G", "e", "e", "k", "s") 
Создание кортежа со смешанными типами данных.

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

Python3

Tuple1 = ( 5 , 'Welcome' , 7 , 'Geeks' )

print ( ".0026 , 1 , 2 , 3 )

Tuple2 = ( 'python' , 'geek' )

Tuple3 = (Tuple1, Tuple2)

print ( "\nTuple with nested tuples: " )

print (Tuple3)

 

Tuple1 = ( 'Geeks' ,) * 3

print ( "\nTuple with repetition: " )

print (Tuple1)

 

Tuple1 = ( 'Geeks' )

n = 5

print ( "\nTuple with a loop" )

for i in range ( int (n)):

     Tuple1 = (Tuple1,)

Печать (Tuple1)

Выход:

9017. (5, «Добро пожаловать», 7, «Вундеркинды») Кортеж с вложенными кортежами: ((0, 1, 2, 3), ('питон', 'выродок')) Кортеж с повторением: («Вундеркинды», «Вундеркинды», «Вундеркинды») Кортеж с петлей («Вундеркинды»,) (('Вундеркинды',) ((('Вундеркинды',),),) (((('Вундеркинды',),),),) ((((('Вундеркинды',),),),),)

Сложности создания кортежей:

Временная сложность: O(1)

Вспомогательное пространство: O(n)

Доступ к кортежам

4 Кортежи неизменны и обычно содержат последовательность из

кортежей, неизменяемых, обычно разнородные элементы, доступ к которым осуществляется посредством распаковки или индексации (или даже по атрибуту в случае именованных кортежей). Списки изменяемы, а их элементы обычно однородны, и доступ к ним осуществляется путем перебора списка.

Примечание: При распаковке кортежа количество переменных в левой части должно быть равно количеству значений в данном кортеже a.

Python3

Tuple1 = tuple ( "Geeks" )

print ( "\nFirst element of Tuple: " )

печать (Tuple1 [ 0 ])

Tuple1 = ( «Гики» , « , » GEEKS ) .) 925) ) ) ) ). = Tuple1

Печать ( "\ nvalues ​​после распаковки:" )

. 0024 print (c)

Вывод:  

 Первый элемент кортежа:
г
Значения после распаковки:
Компьютерщики
Для
Компьютерщики 

Сложности доступа к элементам в кортежах:

Временная сложность: O(1)

Пространственная сложность: O(1)

Конкатенация кортежей

Конкатенация двух или более кортежей Кортежи. Конкатенация выполняется с помощью оператора «+». Конкатенация кортежей всегда выполняется с конца исходного кортежа. Другие арифметические операции не применяются к кортежам.

Примечание- При конкатенации могут объединяться только одинаковые типы данных, при объединении списка и кортежа возникает ошибка.

Python3

Tuple1 = ( 0 , 1 , 2 , 3 )

Tuple2 = ( "Гики" , "Для" , 'Geeks' )

 

Tuple3 = Tuple1 + Tuple2

 

print ( "Tuple 1: " )

Печать (Tuple1)

Печать ( "\ ntuple2:" )

66956995695699569956. ( ).0002  

print ( "\nTuples after Concatenation: " )

print (Tuple3)

Output:  

 Tuple 1:
(0, 1, 2, 3)
Кортеж2:
(«Вундеркинды», «Для», «Вундеркинды»)
Кортежи после конкатенации:
(0, 1, 2, 3, «Гики», «Для», «Гики») 

Временная сложность: O(1)

Вспомогательное пространство: O(1)

Нарезка кортежа

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

Примечание. Отрицательные значения приращения также можно использовать для обращения последовательности кортежей.

Python3

 

Кортеж1 = Кортеж ( 'GEEKSFORGEEKS' )

 

print ( "Removal of First Element: " )

print (Tuple1[ 1 :] )

Печать ( "\ ntuple После последовательности элемента реверсирована:" )

Печать (TUPLE1 [::: - ( - ( - - ( - .0025 ])

 

print ( "\nPrinting elements between Range 4-9: " )

print (Tuple1[ 4 : 9 ])

Вывод:  

 Удаление первого элемента:
(«Е», «Е», «К», «С», «Ф», «О», «Р», «Г», «Е», «Е», «К», «С»)
Кортеж после того, как последовательность элементов перевернута:
(«С», «К», «Е», «Е», «Г», «Р», «О», «Ф», «С», «К», «Е», «Е», « Г')
Печатные элементы между диапазоном 4-9:
('S', 'F', 'O', 'R', 'G') 

Сложности для обхода/поиска элементов в кортежах:

Временная сложность: O(1)

Пространственная сложность: O(1)

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

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

Примечание. Печать кортежа после удаления приводит к ошибке.

Питон

 

Tuple1 = ( 0 , 1 , 2 , 3 , 4 )

del Tuple1

 

print (Tuple1)

Traceback (most recent call last): 
File “/home/efa50fd0709dec08434191f32275928a.py”, line 7, in 
print(Tuple1) 
NameError: name 'Tuple1' is not defined

Built-In Methods
Built-in-Method Description
index( ) Находит в кортеже и возвращает индекс заданного значения, если он доступен0167
Встроенные функции
999
Встроенная функция Описание
ALL () Возврат правда, если все элементы, или IF TUPLE DITE DITE DITE. вернуть true, если какой-либо элемент кортежа истинен. если кортеж пуст, вернуть false
len() Возвращает длину кортежа или размер кортежа
enumerate() Возвращает перечисляемый объект кортежа
max() return maximum element of given tuple
min() return minimum element of given tuple
sum() Sums up the numbers in the tuple
sorted() ввести элементы в кортеж и вернуть новый отсортированный список
tuple() Преобразовать итерируемый объект в кортеж.

 

Кортежи VS Списки:

Сходства Различия

Функции, которые можно использовать как для списков, так и для кортежей: , all(), sorted()

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

append(), insert(), remove(), pop(), clear(), sort(), reverse()

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

count(), Index()

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

Недавние статьи о Tuple

Программы ставок

  • Уникальные строки в данной строках
  • . символов в строке
  • Создание двух выходных строк в зависимости от появления символа во входной строке в Python
  • Метод группировки Python для удаления всех последовательных дубликатов
  • Преобразование списка символов в строку
  • Удаление пустых кортежей из списка
  • Обращение кортежа
  • Python Set symmetric_difference()
  • Преобразование списка кортежей в словарь
  • Сортировка кортежа по его элементу float9
  • Подсчет вхождений элемента в кортеж
  • Подсчет элементов в списке до тех пор, пока элемент не станет кортежем
  • Сортировка кортежей по возрастанию по любому ключу
  • Именованный кортеж в Python

Useful Links:

  • Output of Python Programs
  • Recent Articles on Python Tuples
  • Multiple Choice Questions – Python
  • All articles in Python Category

A Step-by-Step Tutorial in 2022 (with 14 Примеры кода)

28 марта 2022 г.

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

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

После того, как вы закончите это руководство по Python, вы будете знать следующее:

  • Как работать с кортежами в Python
  • Разница между кортежами и списками в Python
  • Основные способы использования кортежей

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

Давайте погрузимся.

Что такое кортеж Python?

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

Давайте посмотрим на несколько примеров кортежей Python:

  • () — пустой кортеж
  • (1.0, 9.9, 10) — кортеж, содержащий три числовых объекта
  • ('Casey', 'Darin', 'Bella', 'Mehdi') — кортеж, содержащий четыре строковых объекта
  • ('10', 101, True) — кортеж, содержащий строку, целое число и логический объект

Кроме того, другие объекты, такие как списки и кортежи, могут содержать кортеж, например:

 a_tuple = (0, [1, 2, 3], (4, 5, 6), 7.0) 

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

 печать (a_tuple)
печать (тип (a_tuple)) 
 (0, [1, 2, 3], (4, 5, 6), 7,0)
 

Однако ('A') не является кортежем. Давайте посмотрим на его тип данных:

 печать (тип (('A'))) 
 

Итак, как мы можем объявить кортеж с одним значением? Ответ прост. Нам нужно добавить дополнительную запятую непосредственно перед закрывающей скобкой, например:
('A',)
Конечная запятая означает, что скобки содержат кортеж с одним значением, а не для увеличения приоритета математической операции. .

Индексирование и нарезка кортежа

Как упоминалось ранее, поскольку кортеж представляет собой последовательность объектов, мы можем получить доступ к этим объектам посредством индексации. Как и в случае со строками, индекс первого элемента равен 0, второго элемента — 1 и так далее. Давайте попробуем проиндексировать кортеж:

 print('Первый элемент:', a_tuple[0])
print('Последний элемент:', a_tuple[-1])
print('Тип данных второго элемента:', type(a_tuple[1])) 
 Первый элемент: 0
Последний элемент: 7. 0
Тип данных второго элемента: 

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

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

 печать (a_tuple [2] [1]) 
 5 

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

Разрезать кортеж так же просто, как разрезать строку Python или список по тем же правилам. Чтобы получить диапазон элементов в кортеже, мы можем указать диапазон индексов для извлечения, выбрав, где начинать (включительно) и заканчивать (исключительно) диапазон.

Давайте посмотрим на несколько примеров:

 num_tuple = 2, 4, 5, 7, 8, 10
печать (num_tuple [: 3])
печать (num_tuple [4:])
печать (num_tuple [-3:])
печать (num_tuple [2: 5]) 
 (2, 4, 5)
(8, 10)
(7, 8, 10)
(5, 7, 8) 

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


ПРИМЕЧАНИЕ

Если вы не знакомы с индексированием и нарезкой объекта последовательности в Python или хотели бы ознакомиться с ним, в блоге Dataquest есть хороший учебник по адресу Tutorial: Demystifying Python Lists.


Чтобы объединить два или более кортежей, мы можем использовать знак + , как и в случае со строками. Например, следующий код объединяет два кортежа:

.
 кортеж_1 = (1, 2)
кортеж_2 = (3, 4)
печать (кортеж_1 + кортеж_2) 
 (1, 2, 3, 4) 

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

 my_tuple = (1, 7, 9, 8)
печать (my_tuple * 2) 
 (1, 7, 9, 8, 1, 7, 9, 8) 

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

Метод zip() принимает несколько объектов последовательности и возвращает итерируемый объект, сопоставляя их элементы. Чтобы узнать больше о сжатии кортежей, рассмотрим следующий пример.

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

 first_names = ('Саймон', 'Сара', 'Мехди', 'Фатиме')
last_names = ('Синек', 'Смит', 'Лотфинеджад', 'Лопес')
возраст = (49, 55, 39, 33)
zip = zip (имя, фамилия, возраст)
печать (в архиве) 
 

Мы объявляем кортежи first_name , last_name и ages в приведенном выше коде. Метод zip() принимает три кортежа и возвращает объект zip, который является итератором. Чтобы использовать объект итератора, нам нужно преобразовать его либо в список, либо в кортеж, например:

 клиентов = кортеж (сжатый)
печать (клиенты) 
 (('Симон', 'Синек', 49), ('Сара', 'Смит', 55), ('Мехди', 'Лотфинеджад', 39), ('Фатиме', 'Лопес', 33)) 

Кортеж клиентов состоит из четырех объектов кортежа, каждый из которых принадлежит клиенту.

Распаковка кортежей

Распаковка кортежа позволяет нам извлечь элементы кортежа и присвоить их именованным переменным. Попробуем:

 имя, фамилия, возраст = клиенты[2]
print(first_name, last_name, ',', age, 'лет') 
 Мехди Лотфинеджад, 39 лет 

Приведенный выше код извлекает элементы кортежа, хранящиеся в индексе 2 кортежа клиентов , и присваивает их переменным first_name , last_name и age .

Разница между кортежами и списками в Python

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

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

 система импорта
a_list = ['abc', 'xyz', 123, 231, 13.31, 0.1312]
a_tuple = ('abc', 'xyz', 123, 231, 13.31, 0.1312)
print('Размер списка:', sys.getsizeof(a_list), 'байт')
print('Размер кортежа:', sys.getsizeof(a_tuple), 'bytes') 
 Размер списка: 104 байта
Размер кортежа: 88 байт 

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

Использование кортежей Python

В этом разделе мы обсудим два интересных способа использования кортежей на практике. Давайте изучим их.

Замена элементов кортежа

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

 х = 19
у = 91
print('Перед заменой:')
печать (f'x = {x}, y = {y}')
(х, у) = (у, х)
print('После замены:')
печать (f'x = {x}, y = {y}') 
 Перед заменой:
х = 19, у = 91
После замены:
х = 91, у = 19 

Значение y присваивается переменной x , а значение x одновременно присваивается переменной y . Это более питонический способ замены значений.

Возврат более одного значения из функции

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

 по определению сумма_и_среднее(х, у, г):
    с = х + у + г
    а = с/3
    возврат (ы, а)
(S, A) = сумма_и_среднее(3,8,5)
печать('Сумма =', С)
печать('Среднее =', А) 
 Сумма = 16
Среднее = 5,3333333333333333 

Функция sum_and_avg() вычисляет сумму и среднее значение трех числовых значений. Функция возвращает s и a , которые являются двумя вычисляемыми значениями в контексте объекта кортежа. На самом деле функция возвращает только одно значение, которое представляет собой объект кортежа, содержащий несколько значений. Мы также использовали метод распаковки кортежа, чтобы извлечь значения из возвращенного объекта кортежа, а затем распечатать их.

Заключение

В этом руководстве рассказывается, как создавать объекты кортежей, а также многие аспекты кортежей Python, такие как индексация, нарезка, сжатие, распаковка и т.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

© 2019 Штирлиц Сеть печатных салонов в Перми

Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.