Как сделать кортеж 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 или обращаться к данным напрямую, по индексу.

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

Читайте также:  Настройка config php moodle

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

В нашем примере мы создаем кортеж с 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: изменяемый, неизменяемый…».

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

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

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

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

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

Читайте также:  Windows sphinx make html

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

Как мы уже говорили, кортежи в 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

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

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

tom = ("Tom", 23) print(tom) # ("Tom", 23)

Также для определения кортежа мы можем просто перечислить значения через запятую без применения скобок:

tom = "Tom", 23 print(tom) # ("Tom", 23)

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

Читайте также:  Int min value kotlin

Для создания кортежа из другого набора элементов, например, из списка, можно передать список в функцию tuple() , которая возвратит кортеж:

data = ["Tom", 37, "Google"] tom = tuple(data) print(tom) # ("Tom", 37, "Google")

С помощью встроенной функции len() можно получить длину кортежа:

tom = ("Tom", 37, "Google") print(len(tom)) # 3

Обращение к элементам кортежа

Обращение к элементам в кортеже происходит также, как и в списке, по индексу. Индексация начинается также с нуля при получении элементов с начала списка и с -1 при получении элементов с конца списка:

tom = ("Tom", 37, "Google", "software developer") print(tom[0]) # Tom print(tom[1]) # 37 print(tom[-1]) # software developer

Но так как кортеж — неизменяемый тип (immutable), то мы не сможем изменить его элементы. То есть следующая запись работать не будет:

При необходимости мы можем разложить кортеж на отдельные переменные:

name, age, company, position = ("Tom", 37, "Google", "software developer") print(name) # Tom print(age) # 37 print(position) # software developer print(company) # Google

Получение подкортежей

Как и в списках, можно получить часть кортежа в виде другого кортежа

tom = ("Tom", 37, "Google", "software developer") # получем подкортеж с 1 по 3 элемента (не включая) print(tom[1:3]) # (37, "Google") # получем подкортеж с 0 по 3 элемента (не включая) print(tom[:3]) # ("Tom", 37, "Google") # получем подкортеж с 1 по послдений элемент print(tom[1:]) # (37, "Google", "software developer")

Кортеж как параметр и результат функций

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

def get_user(): name = "Tom" age = 22 company = "Google" return name, age, company user = get_user() print(user) # ("Tom", 37, "Google")

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

def print_person(name, age, company): print(f"Name: Age: Company: ") tom = ("Tom", 22) print_person(*tom, "Microsoft") # Name: Tom Age: 22 Company: Microsoft bob = ("Bob", 41, "Apple") print_person(*bob) # Name: Bob Age: 41 Company: Apple

Перебор кортежей

Для перебора кортежа можно использовать стандартные циклы for и while . С помощью цикла for:

tom = ("Tom", 22, "Google") for item in tom: print(item)
tom = ("Tom", 22, "Google") i = 0 while i < len(tom): print(tom[i]) i += 1

Проверка наличия значения

Как для списка с помощью выражения элемент in кортеж можно проверить наличие элемента в кортеже:

user = ("Tom", 22, "Google") name = "Tom" if name in user: print("Пользователя зовут Tom") else: print("Пользователь имеет другое имя")

Источник

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