Создание кортежей
Кортеж — неизменяемая упорядоченная коллекция:
# Через круглые скобки
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 — индекс первого вхождения