← Назад к вопросам

Для чего используется кортеж (tuple) в Python?

1.0 Junior🔥 221 комментариев
#Python

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Кортежи (Tuples) в Python

Определение и назначение

Кортеж (tuple) — это неизменяемая (immutable) последовательность элементов в Python. В отличие от списков, содержимое кортежа нельзя изменить после создания.

Основные характеристики

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

  • После создания элементы кортежа нельзя изменить
  • Обеспечивает безопасность данных и оптимизацию памяти

Хешируемость:

  • Кортежи можно использовать как ключи в словарях
  • Кортежи можно добавлять в множества (sets)
  • Списки нельзя использовать как ключи

Производительность:

  • Кортежи работают быстрее, чем списки
  • Занимают меньше памяти

Синтаксис создания

empty_tuple = ()
single_tuple = (42,)
user_data = ("Иван", 28, "Moscow", True)
colors = "red", "green", "blue"
from_list = tuple([1, 2, 3, 4])

Основные операции

user = ("Мария", 35, "SPB")
print(user[0])  # "Мария"
print(user[-1])  # "SPB"
print(user[1:])  # (35, "SPB")

name, age, city = user
print(name)  # "Мария"

print(len(user))  # 3
print("Мария" in user)  # True

tupl1 = (1, 2)
tupl2 = (3, 4)
tupl3 = tupl1 + tupl2  # (1, 2, 3, 4)

Использование как ключи словаря

coordinates = {}
coordinates[(10, 20)] = "Точка A"
coordinates[(30, 40)] = "Точка B"
print(coordinates[(10, 20)])  # "Точка A"

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

def get_user_info():
    return ("Анна", 25, "anna@example.com")

name, age, email = get_user_info()

def process_coordinates(point):
    x, y = point
    return x ** 2 + y ** 2

result = process_coordinates((3, 4))  # 25

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

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

Кортежи в наборах данных

points = [(10, 20), (30, 40), (50, 60)]
unique_points = {(10, 20), (30, 40), (10, 20)}
print(unique_points)  # {(10, 20), (30, 40)}

graph = {
    ("A", "B"): 10,
    ("B", "C"): 20,
    ("A", "C"): 25
}

Практические примеры в Data Engineering

def get_db_stats():
    row_count = 1000000
    column_count = 50
    last_update = "2026-03-26"
    return (row_count, column_count, last_update)

rows, cols, updated = get_db_stats()

records = [
    ("id_1", "value_1", 100),
    ("id_2", "value_2", 200),
    ("id_3", "value_3", 150)
]

filtered = [r for r in records if r[2] > 100]

from collections import defaultdict

transactions = [
    ("2026-03-01", "USD", 1000),
    ("2026-03-01", "EUR", 500),
    ("2026-03-02", "USD", 2000)
]

by_date_currency = defaultdict(float)
for date, currency, amount in transactions:
    by_date_currency[(date, currency)] += amount

print(by_date_currency[("2026-03-01", "USD")])  # 1000

Когда использовать

Используйте кортежи когда:

  • Данные не должны изменяться после создания
  • Нужно использовать последовательность как ключ словаря
  • Нужно добавить элементы в множество
  • Функция возвращает несколько значений
  • Требуется минимизировать использование памяти
  • Производительность критична

Используйте списки когда:

  • Данные будут изменяться (добавление, удаление, модификация)
  • Порядок может измениться
  • Нужны методы .append(), .remove(), .sort()

Заключение

Кортежи — это фундаментальный инструмент Python для работы с неизменяемыми последовательностями. Они критически важны в Data Engineering для возврата множества значений из функций, использования в качестве ключей для группировки данных, повышения производительности и обеспечения целостности данных при передаче между компонентами системы.

Для чего используется кортеж (tuple) в Python? | PrepBro