Рубріки: Теория

Зачем нужен кортеж в Python и как с ним работать

Сергій Бондаренко

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

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

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

a = (25, 26, 27) 

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

a = 12, 1, 33
print (a)
(12, 1, 33)

В том случае, когда кортеж состоит из одного элемента, обязательно поставьте запятую:

a=1,
type(a)
<class 'tuple'>

Существует еще один способ описания кортежа — при помощи функции tuple:

b= tuple()  #Присвоение переменной b типа кортеж 

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

Доступ к элементам кортежа осуществляется так же, как и доступ к элементам списка — с помощью индекса. Чтобы вывести, скажем, второй элемент кортежа, следует обратиться к элементу с индексом 1:

a = (25, 26, 27) # Создание кортежа
print(a[1])
26

Чем кортеж отличается от списка?

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

a = [25, 26, 27]   # Описание списка
a [1] = 28            # Элемент списка с индексом 1 изменяется на 28
print (a)               # Вывод результата на экран

25, 28, 27

В случае с кортежем такую операцию выполнить невозможно. Напомним, что в отличии от списков, кортежи являются неизменяемой структурой.

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

Еще одно достоинство кортежей — они занимают в памяти меньше места, чем списки. В этом нетрудно убедиться, используя метод __sizeof__ , который возвращает размер объекта в байтах:

a = [25, 26, 27]             #Описание списка
tpl = (25, 26, 27)           # Описание кортежа
print(tpl.__sizeof__())   #Получение размера в байтах для кортежа tpl
48
print(a.__sizeof__())      #Получение размера в байтах для списка a
104

Как видно, список a занимает 104 байта против 48 байт, выделяемых для кортежа. Из этого можно сделать вывод — производительность операций с кортежами будет выше, чем при работе со списками и, соответственно, меньше потратится времени. 

Вывод элементов кортежа

Из общего набора элементов кортежа можно выводить диапазон значений:

tpl = (25, 26, 27, 40, 50)
print(tpl[0:2])
(25, 26)

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

Давайте попробуем:

tpl = (25, 26, 27, 40, 50)   # Описание кортежа
del tpl                                # Удаление переменной tpl

Обратите внимание — когда переменная идентифицируется как кортеж и содержит текст, при выводе ее значения мы получаем не цельный текст, а отдельные символы — элементы неизменяемого списка:

f = tuple ("абракадабра")
print (f)
('а', 'б', 'р', 'а', 'к', 'а', 'д', 'а', 'б', 'р', 'а')

Поиск элемента в кортеже

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

allusers = ("Андрей", "Василиса", "Константин", "Анатолий", "Леонид", "София", "Елена")
name = "Елена"
 if name in allusers:
    print("Имя присутствует в списке")
else:
    print("Имя отсутствует в списке")

    
Имя присутствует в списке

Определение количества повторений в кортеже

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

a = ( "Инна", "Владимир", "Арина", "Инна", "Сергей")
print (a.count ("Инна"))
2

Заключение

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

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023