Олег Марков
Работа с кортежами tuple Python
Введение
Кортежи (tuple) — это встроенный тип данных Python, представляющий упорядоченную коллекцию элементов. В отличие от списков, кортежи неизменяемы, что делает их полезными для хранения константных данных, передачи фиксированных наборов значений и использования в качестве ключей словарей.
Кортежи поддерживают индексацию, срезы, перебор и могут содержать элементы любых типов, включая вложенные кортежи и списки. В этой статье мы разберемся, как создавать и использовать кортежи, работать с их элементами и применять методы упаковки и распаковки.
Если вы хотите детальнее изучить коллекции Python, включая списки, кортежи, множества и словари — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами. Вы получите системное понимание работы с коллекциями Python, включая кортежи.
Создание кортежей
Кортеж создается с помощью круглых скобок () или без скобок при перечислении значений:
t1 = (1, 2, 3)
t2 = "apple", "banana", "cherry"
t3 = () # пустой кортеж
t4 = (5,) # кортеж с одним элементом, запятая обязательнаОсобенности:
- Запятая после одного элемента обязательна, иначе создается обычное значение.
- Кортежи могут содержать любые типы данных, включая другие кортежи или списки.
Доступ к элементам
Элементы кортежа доступны по индексу:
fruits = ("apple", "banana", "cherry")
print(fruits[0]) # apple
print(fruits[-1]) # cherryСрезы работают так же, как для списков:
numbers = (1, 2, 3, 4, 5)
print(numbers[1:4]) # (2, 3, 4)
print(numbers[:3]) # (1, 2, 3)Неизменяемость кортежей
Кортежи неизменяемы — нельзя менять элементы после создания:
fruits = ("apple", "banana")
# fruits[1] = "cherry" # вызовет TypeErrorДля изменения содержимого используют конвертацию к списку:
fruits = list(fruits)
fruits[1] = "cherry"
fruits = tuple(fruits)Упаковка и распаковка
Python поддерживает удобную упаковку и распаковку кортежей:
# Упаковка
point = 10, 20
# Распаковка
x, y = point
print(x, y) # 10 20
# Можно игнорировать элементы
a, _, b = (1, 2, 3)
print(a, b) # 1 3Методы кортежей
Кортежи имеют ограниченный набор методов, так как они неизменяемы:
t = (1, 2, 3, 2)
# подсчет количества элементов
print(t.count(2)) # 2
# индекс первого вхождения элемента
print(t.index(3)) # 2Перебор кортежей
Цикл for позволяет перебирать элементы:
fruits = ("apple", "banana", "cherry")
for fruit in fruits:
print(fruit)Для получения индекса используйте enumerate:
for i, fruit in enumerate(fruits):
print(i, fruit)Частые ошибки при работе с кортежами
- Попытка изменить элемент кортежа →
TypeError. - Ошибка при создании кортежа с одним элементом без запятой.
- Использование методов списков (
append,remove) — недоступны для кортежей. - Ошибки при распаковке при несовпадении количества переменных и элементов.
Часто задаваемые вопросы
- Можно ли вложить кортеж в кортеж? Да, кортежи могут содержать другие кортежи, списки или словари:
nested = (1, (2, 3), [4, 5])- Как объединить два кортежа?
t1 = (1, 2)
t2 = (3, 4)
t3 = t1 + t2
print(t3) # (1, 2, 3, 4)Можно ли удалить элемент кортежа? Непосредственно нет, кортежи неизменяемы. Нужно конвертировать в список, удалить и вернуть кортеж.
Как проверить наличие элемента?
fruits = ("apple", "banana")
print("apple" in fruits) # TrueЗаключение
Кортежи (tuple) — удобный и безопасный способ хранения неизменяемых коллекций в Python. Они поддерживают индексацию, срезы, перебор, а также упаковку и распаковку элементов. Знание их особенностей позволяет эффективно управлять данными и использовать кортежи в качестве константных коллекций и ключей словарей.
Для системного изучения работы с кортежами и другими коллекциями Python, включая списки, множества и словари, рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев