Помимо списков в 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
Кортежи выгодно использовать в случаях, когда нужно быть уверенным в целостности данных. Кортеж не подвергается изменениям. Он аналогичен списку, но занимает меньше памяти, а потому, запомните: если есть возможность использовать кортеж вместо списка, лучше использовать кортеж.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…