Виды кортежей в python

Кортежи в Python

Кортеж (англ. tuple) — встроенный тип данных в Python. Кортежи используются для хранения нескольких элементов в одной переменной.

Оглавление

Особенности кортежей

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

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

От редакции Pythonist: о списках читайте в статье «Списки в Python: полное руководство для начинающих», а о разнице между кортежами и списками — в статье «Чем отличается кортеж от списка в Python».

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

Как создать кортеж в Python

Создать кортеж в Python очень просто, но есть несколько моментов, о которых вам нужно знать.

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

Ниже приведен пример создания кортежа, содержащего три элемента.

exampletuple = ("house", "unit", "apartment")

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

Кортеж с одним элементом

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

Правильное создание кортежа в Python: exampletuple = («house»,) .

Неправильное создание кортежа: exampletuple = («house») .

Использование конструктора tuple()

Для корректного создания кортежа также можно использовать конструктор.

exampletuple = tuple(("house", "unit", "apartment")) print(exampletuple) # Вывод: # ('house', 'unit', 'apartment')

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

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

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

Индексация кортежей в Python начинается с 0, поэтому для ссылки на первый элемент используется индексное значение 0. Вы можете получить доступ к элементам кортежа, используя квадратные скобки [] и индексы элементов.

Кортеж можно перебрать в цикле for или обращаться к данным напрямую, по индексу.

Читайте также:  Opencv python documentation pdf

От редакции Pythonist: рекомендуем почитать «Цикл for в Python: тонкости написания».

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

В нашем примере мы создаем кортеж с 5 элементами. Это означает, что первый элемент будет иметь индекс 0, а последний — 4. Попытка получить доступ к элементу кортежа по индексу вне этого диапазона приведет к ошибке.

После создания кортежа мы выводим значения элементов под индексами 0 и 3.

exampletuple = ("house", "unit", "apartment", "villa", "acreage") print(exampletuple[0]) print(exampletuple[3]) # Вывод: # house # villa

Как видите, значение элемента с индексом 0 — это первая строка, house . А под индексом 3 хранится четвертая строка, villa .

Отрицательный индекс

В коллекции данных кортежа можно использовать отрицательный индекс. Использование отрицательных чисел означает, что отсчет идет в обратном направлении. Так, индекс -1 относится к последнему элементу кортежа.

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

exampletuple = ("house", "unit", "apartment", "villa", "acreage") print(exampletuple[-1]) print(exampletuple[-3]) # Вывод: # acreage # apartment

Как видите, мы вывели последний и третий элемент нашего кортежа.

Срезы кортежей

Чтобы получить доступ к диапазону значений из кортежа, вы можете использовать оператор среза — : . Чтобы задать диапазон, вы указываете его начало и конец, разделяя их двоеточием. Например, [0:4] выберет все значения с индексами от 0 до 4.

Указывать начало и конец диапазона не обязательно. Но важно, какое именно значение вы опустите. Так, например, срез [:3] выберет все элементы от начала кортежа, т. е. от элемента с индексом 0, до элемента с индексом 3. А срез [1:] — элементы от индекса 1 до конца кортежа.

В нашем примере ниже мы хотим получить все, что находится между индексами 1 и 3.

exampletuple = ("house", "unit", "apartment", "villa", "acreage") print(exampletuple[1:3]) # Вывод: # ('unit', 'apartment')

Обратите внимание, что при взятии среза элемент, указанный как конец диапазона, в срез не входит. Здесь мы вывели срез [1:3] и получили в выводе элементы с индексами 1 и 2.

Обновление кортежей

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

exampletuple = ("house", "unit", "apartment", "villa", "acreage") newtuple = exampletuple[0:3] print(newtuple) # Вывод: # ('house', 'unit', 'apartment')

Наш новый кортеж содержит только часть старого. Можно пойти еще дальше и объединить два кортежа в новый кортеж (мы рассмотрим это в следующем разделе).

От редакции Pythonist: на тему изменяемости объектов рекомендуем очень хорошую и подробную статью — «Python 3: изменяемый, неизменяемый…».

Читайте также:  Get tag attribute javascript

Конкатенация нескольких кортежей

Вам может понадобиться объединить несколько кортежей. Например, присоединить часть одного кортежа к другому.

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

exampletuple = ("house", "unit", "apartment", "villa", "acreage") newtuple = exampletuple[0:3] + ("ranch", "farm") print(newtuple) # Вывод: # ('house', 'unit', 'apartment', 'ranch', 'farm')

Итак, мы успешно объединили два кортежа. Конечно, это всего лишь пример, и вы можете проделать это более чем с двумя кортежами.

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

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

В приведенном ниже примере мы удаляем элемент apartment , разрезая кортеж и не включая этот конкретный элемент в newtuple .

exampletuple = ("house", "unit", "apartment", "villa", "acreage") newtuple = exampletuple[:2] + exampletuple[3:] print(newtuple) # Вывод: # ('house', 'unit', 'villa', 'acreage')

Элемент apartment был успешно удален, но для этого пришлось создать новый кортеж.

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

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

Ниже мы создаем кортеж, выводим его, удаляем и пытаемся вывести снова.

exampletuple = ("house", "unit", "apartment") print(exampletuple) del exampletuple print(exampletuple)
('house', 'unit', 'apartment') Traceback (most recent call last): File "D:\Python\tuple.py", line 7, in print(exampletuple) NameError: name 'exampletuple' is not defined

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

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

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

cmp(tuple1,tuple2) Сравнивает элементы двух кортежей.
len(tuple) Возвращает длину кортежа.
all(tuple) Возвращает True, если все элементы кортежа оцениваются как True или если кортеж пуст.
any(tuple) Возвращает True, если хоть один элемент кортежа оценивается как True. Если кортеж пуст — возвращает False.
max(tuple) Возвращает максимальное значение в кортеже.
min(tuple) Возвращает минимальное значение в кортеже.
sum(tuple) Суммирует все числа в кортеже. Если в кортеже встречается строка, выдает ошибку.
sorted(tuple) Сортирует кортеж.

Заключение

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

Источник

Шпаргалка по кортежам в Python

Обратите внимание, что иногда скобки — это просто математические скобки. Если вы создаете кортеж с одним элементом, то после значения должна стоять запятая.

Читайте также:  Java stream collector to list

Операции с кортежами

Символ Операция Пример Результат
+ Конкатенация (1, 2) + (3, 4) (1, 2, 3, 4)
* Повторение (1, 2) * 2 (1, 2, 1, 2)
in Членство 1 in (1, 2) True
is Идентичность (1, a := []) is (1, a) False
== Равенство (1, a := []) == (1, a) True
[x] Взятие по индексу (1, 2)[0] 1
[x:y:z] Срезы (1, 2)[::-1] (2, 1)

Методы кортежей

Метод Назначение
tuple.index(value, start=0, stop=-1) Возвращает индекс первого элемента со значением value между start и stop , или ValueError , если значение не найдено.
tuple.count(value) Возвращает количество элементов со значением value

Практический Python для начинающих

Практический Python для начинающих

Станьте junior Python программистом за 7 месяцев

Источник

Кортежи (tuple)

Python 3 логотип

Сегодня я расскажу о таком типе данных, как кортежи (tuple) и о том, где они применяются.

Кортеж, по сути — неизменяемый список.

Зачем нужны кортежи, если есть списки?

  • Защита от дурака. То есть кортеж защищен от изменений, как намеренных (что плохо), так и случайных (что хорошо).
  • Меньший размер. Дабы не быть голословным:

Как работать с кортежами?

С преимуществами кортежей разобрались, теперь встает вопрос — а как с ними работать. Примерно так же, как и со списками.

    Создаем кортеж из одного элемента:
 
 
 

Ну и создать кортеж из итерируемого объекта можно с помощью все той же пресловутой функции tuple()

Операции с кортежами

Все операции над списками, не изменяющие список (сложение, умножение на число, методы index() и count() и некоторые другие операции). Можно также по-разному менять элементы местами и так далее.

Например, гордость программистов на python - поменять местами значения двух переменных:

Для вставки кода на Python в комментарий заключайте его в теги

  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов

Источник

Оцените статью