Кортеж (tuple) в Python — это упорядоченная коллекция элементов, похожая на список, но неизменяемая. После создания кортежа нельзя изменить, добавить или удалить его элементы. Благодаря этому кортежи можно использовать как ключи словаря и передавать их в функции, не опасаясь случайного изменения данных.
Кортеж создаётся с помощью круглых скобок () или просто запятых:
# Кортеж чисел
numbers = (1, 2, 3, 4, 5)
# Кортеж строк
fruits = ("apple", "banana", "orange")
# Кортеж без скобок (запятые создают кортеж)
point = 10, 20
# Пустой кортеж
empty = ()single = (5,) # кортеж с одним элементом
not_tuple = (5) # это число 5, а не кортеж!В отличие от списков, кортежи нельзя изменять после создания:
fruits = ("apple", "banana", "orange")
# Это вызовет ошибку TypeError!
# fruits[1] = "grape"
# fruits.append("mango")
# fruits.remove("banana")Работают так же, как у списков и строк: индекс от 0, отрицательные индексы — с конца.
fruits = ("apple", "banana", "orange")
print(fruits[0]) # 'apple' — первый
print(fruits[-1]) # 'orange' — последний
# Срезы создают новый кортеж
print(fruits[1:3]) # ('banana', 'orange')
print(fruits[:2]) # ('apple', 'banana')
print(fruitsРаспаковка позволяет присвоить элементы кортежа отдельным переменным одной строкой:
coordinates = (10, 20)
x, y = coordinates
print(x, y) # 10 20
# Несколько элементов
person = ("Иван", 25, "Москва")
name, age, city = personРаспаковка часто используется для обмена значений двух переменных:
a = 5
b = 10
a, b = b, a # теперь a = 10, b = 5
print(a, b) # 10 5Функция len() и оператор in работают с кортежами так же, как со списками:
fruits = ("apple", "banana", "orange")
print(len(fruits)) # 3
print("apple" in fruits) # True
print("grape" in fruits) # FalseСловарь требует, чтобы ключи были неизменяемыми. Списки изменяемы — их нельзя использовать как ключи. Кортежи подходят:
# Кортежи — можно
locations = {
(0, 0): "Начало",
(10, 20): "Точка A"
}
print(locations[(0, 0)]) # Начало
# Списки — нельзя! Вызовет TypeError
# bad = {[0, 0]: "Начало"}Можно объединять кортежи и повторять их (создаются новые кортежи):
t1 = (1, 2)
t2 = (3, 4)
print(t1 + t2) # (1, 2, 3, 4)
print(t1 * 3) # (1, 2, 1, 2, 1, 2)# Из списка в кортеж
my_list = [1, 2, 3]
my_tuple = tuple(my_list)
# Из кортежа в список
my_tuple = (1, 2, 3)
my_list = list(my_tuple)Создай кортеж fruits с тремя фруктами и выведи первый и последний элементы.
fruits = ("apple", "banana", "orange")
print(fruits[0])
print(fruits[-1])Дан кортеж coordinates = (10, 20, 30). Используй распаковку, чтобы присвоить значения переменным x, y, z, и выведи их сумму.
coordinates = (10, 20, 30)
x, y, z = coordinates
print(x + y + z)Обменяй значения переменных a и b с помощью распаковки кортежа.
a = 5
b = 10
a, b = b, a
print(a, b)Создай кортеж из одного элемента — число 42.
single = (42,)
print(type(single)) # <class 'tuple'>Дан кортеж numbers = (1, 2, 3, 4, 5). Выведи срез с 2-го по 4-й элемент (индексы 1, 2, 3).
numbers = (1, 2, 3, 4, 5)
print(numbers[1:4])Создай словарь, где ключи — кортежи (x, y), значения — названия точек. Выведи значение для ключа (1, 0).
points = {
(0, 0): "Начало",
(1, 0): "Точка A",
(0, 1): "Точка B"
}
print(points[(1, 0)])Кортежи — упорядоченные неизменяемые коллекции. Они создаются с помощью () или запятых; кортеж из одного элемента требует запятую: (5,). Индексация и срезы работают как у списков. Распаковка x, y = (10, 20) и обмен a, b = b, a — удобные приёмы. Кортежи можно использовать как ключи словаря, в отличие от списков.
(5) вместо (5,) — получится число, а не кортеж.point[0] = 10) — программа выбросит TypeError.tuple и list — вы создадите не тот тип данных.Создай кортеж fruits с тремя фруктами: "apple", "banana", "orange". Выведи:
Дан кортеж coordinates = (10, 20, 30). Используй распаковку кортежа, чтобы присвоить значения переменным x, y, z. Затем выведи сумму этих переменных.
Даны две переменные: a = 5 и b = 10. Обменяй их значения с помощью распаковки кортежа и выведи новые значения.
Создай словарь students, где ключами являются кортежи из имени и фамилии, а значениями — оценки. Например:
("Иван", "Петров"): 5("Мария", "Сидорова"): 4("Алексей", "Иванов"): 5Затем выведи оценку для студента ("Мария", "Сидорова").
Дан кортеж numbers = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Используй срезы, чтобы вывести:
Дан кортеж чисел. Найди и выведи минимальный и максимальный элементы. Не используй min() и max() — реализуй перебором.
Дан список кортежей пар чисел: [(1, 5), (3, 2), (4, 8), (0, 1)]. Найди кортеж, сумма элементов которого максимальна. Выведи этот кортеж.