Урок 27 Кортежи

tuple, неизменяемые последовательности

⏱ ~10 мин чтения· 📘 Базовый

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

Кортеж — неизменяемая упорядоченная коллекция:

# Через круглые скобки
point = (3, 4)
colors = ("red", "green", "blue")

# Без скобок (кортеж создаётся запятыми)
point = 3, 4

# Кортеж из одного элемента
single = (1,)  # запятая обязательна!

# Пустой кортеж
empty = ()
also_empty = tuple()

# Через функцию tuple()
nums = tuple([1, 2, 3])  # (1, 2, 3)

Неизменяемость

Кортеж нельзя изменить после создания:

point = (3, 4)
print(point[0])   # 3
print(point[1])   # 4

# point[0] = 10  # Ошибка! TypeError

# Но если кортеж содержит список, список можно изменить
mixed = (1, [2, 3])
mixed[1].append(4)  # mixed == (1, [2, 3, 4])

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

Работают те же операции, что и со списками:

# Сложение (конкатенация)
t = (1, 2) + (3,)       # (1, 2, 3)

# Умножение
repeated = ("ok",) * 3  # ("ok", "ok", "ok")

# Вхождение и длина
print(2 in t)      # True
print(7 not in t)  # True
print(len(t))      # 3

Распаковка кортежей

Кортежи удобно распаковывать в переменные:

point = (3, 4)
x, y = point
print(x)  # 3
print(y)  # 4

# Обмен значений через кортеж
a, b = 1, 2
a, b = b, a
print(a, b)  # 2 1

# Распаковка со звёздочкой — остаток собирается в список
first, *rest = (1, 2, 3, 4)
print(first)  # 1
print(rest)   # [2, 3, 4]

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

У кортежей всего два метода:

point = (3, 4)
print(point.count(3))  # 1 — сколько раз элемент встречается
print(point.index(4))  # 1 — индекс первого вхождения