Примеры кортежей в Python для начинающих программистов

Раздел: Python -> Основы языка Python

Основы работы с кортежами в Python

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


# Создание кортежа из нескольких значений
my_tuple = (10, 'text', 3.14, True)
print(my_tuple)  # (10, 'text', 3.14, True)

# Получение элемента по индексу
print(my_tuple[1])  # text

# Длина кортежа
print(len(my_tuple))  # 4

что делает strip в python (метод strip() в python)

(10, 'text', 3.14, True)
text
4

математические примеры python (математические примеры в python)

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

Кортеж можно создать несколькими способами: с помощью круглых скобок, функции tuple(), строки без скобок (упаковка) и из итерабельного объекта.


# Способ 1: круглые скобки
a = (1, 2, 3)

# Способ 2: без скобок (упаковка)
b = 4, 5, 6
print(type(b))  # 

# Способ 3: функция tuple()
c = tuple([7, 8, 9])  # из списка

# Способ 4: кортеж из одного элемента (обязательно запятая!)
d = (42,)  # без запятой получится просто число 42

новые возможности условного оператора python (новые возможности условного оператора в python)

Типичная ошибка: создание кортежа из одного элемента без запятой: e = (42) - это не кортеж, а целое число. Всегда добавляйте запятую после единственного элемента.

Как получить элемент или срез кортежа?

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


t = (0, 1, 2, 3, 4, 5)
print(t[2])    # 2
print(t[-1])   # 5
print(t[1:4])  # (1, 2, 3)
print(t[::-1]) # (5, 4, 3, 2, 1, 0)

Float python пример (примеры float в python)

Типичная ошибка: попытка получить элемент по несуществующему индексу вызывает IndexError. Всегда проверяйте длину кортежа перед обращением.

Почему нельзя изменить кортеж?

Кортеж является неизменяемым (immutable) объектом. Попытка присвоить новое значение элементу приведёт к ошибке TypeError.


t = (1, 2, 3)
# t[0] = 100  # TypeError: 'tuple' object does not support item assignment

Python кортежи примеры (примеры кортежей в python)

Распространённый вопрос: как обновить кортеж? Неизменяемость означает, что вы не можете модифицировать существующий кортеж. Можно создать новый на основе существующего, например, с помощью конкатенации или срезов: t = t[:1] + (100,) + t[2:]. Это создаст новый кортеж.

Как кортеж может выступать ключом словаря?

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


d = {('Moscow', 2024): 'столица', ('SPb', 2024): 'северная столица'}
print(d[('Moscow', 2024)])  # столица

словарь в python пример (примеры словарей в python)

Типичная ошибка: если кортеж содержит изменяемые элементы (например, список внутри кортежа), такой кортеж не может быть ключом. Python вычислит хеш, но список не хешируется, и возникнет TypeError.

Как вернуть несколько значений из функции с помощью кортежа?

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


def min_max(lst):
    return min(lst), max(lst)  # возвращается кортеж

result = min_max([3, 1, 7, 2])
print(result)       # (1, 7)
low, high = result
print(low, high)    # 1 7

Распространённая ошибка: забыть распаковать кортеж. Если функция возвращает кортеж, а вы присваиваете результат одной переменной, эта переменная станет кортежем. Для доступа к отдельным значениям используйте распаковку или индексацию.

- множественный выбор python (множественный выбор (if-elif-else) в python)
- проверить является ли числом python (проверка, является ли значение числом в python)

Расширенные примеры и нестандартные применения кортежей

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

Именованные кортежи (namedtuple)

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

Пример

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y', 'z'])
p = Point(10, 20, 30)
print(p.x, p.y, p.z)          # 10 20 30
print(p[0])                   # 10 (индексация также работает)
10 20 30
10

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

Кортежи сравниваются поэлементно в лексикографическом порядке. Это полезно для сортировки сложных данных.

Пример

t1 = (1, 2, 3)
t2 = (1, 2, 4)
t3 = (1, 2, 3)
print(t1 < t2)   # True (3 < 4)
print(t1 == t3)  # True
print(t1 > (0, 9))  # True (1 > 0)
True
True
True

Упаковка и распаковка кортежей

Упаковка - присваивание нескольких значений одной переменной без скобок. Распаковка - присваивание кортежа нескольким переменным.

Пример

# Упаковка
packed = 1, 2, 3
# Распаковка
a, b, c = packed
print(a, b, c)  # 1 2 3
# Расширенная распаковка с *
first, *middle, last = (10, 20, 30, 40, 50)
print(first, middle, last)  # 10 [20, 30, 40] 50
1 2 3
10 [20, 30, 40] 50

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

Неизменяемость позволяет кортежам быть элементами множества.

Пример

my_set = {(1, 2), (3, 4), (1, 2)}
print(my_set)  # {(1, 2), (3, 4)} - дубликат удалён
{(1, 2), (3, 4)}

Кортеж и *args в функциях

Оператор *args собирает дополнительные позиционные аргументы в кортеж.

Пример

def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3, 4))  # 10
10

Преобразование кортежа в список и обратно

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

Пример

t = (1, 2, 3)
lst = list(t)
lst.append(4)
t = tuple(lst)
print(t)  # (1, 2, 3, 4)
(1, 2, 3, 4)

Сортировка списка кортежей

Часто данные представлены в виде списка кортежей (например, результаты запросов). Сортировка по одному из полей выполняется с помощью параметра key.

Пример

students = [('Иван', 22, 4.5), ('Мария', 20, 4.8), ('Пётр', 23, 3.9)]
sorted_by_age = sorted(students, key=lambda s: s[1])
sorted_by_grade = sorted(students, key=lambda s: s[2], reverse=True)
print(sorted_by_grade)
[('Мария', 20, 4.8), ('Иван', 22, 4.5), ('Пётр', 23, 3.9)]

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

Кортежи отлично подходят для хранения неизменяемых конфигурационных данных, дней недели, координат и т.д.

Пример

DAYS_OF_WEEK = ('Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс')
# DAYS_OF_WEEK[0] = 'Понедельник'  # недопустимо
print(DAYS_OF_WEEK[5])  # Сб
Сб

Кортежи в генераторах списков

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

Пример

squares = [(x, x**2) for x in range(5)]
print(squares)
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]

Вложенные кортежи

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

Пример

matrix = ((1, 2), (3, 4), (5, 6))
print(matrix[1][0])  # 3
3

Примеры кортежей в Python - comments

En
Python кортежи примеры (python)