Комментарии (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 для возврата множества значений из функций, использования в качестве ключей для группировки данных, повышения производительности и обеспечения целостности данных при передаче между компонентами системы.