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

«Для чего используется кортеж (tuple) в Python?» — вопрос из категории Python, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Кортеж (tuple) — это неизменяемая (immutable) и упорядоченная коллекция. Его ключевые применения:

  • Хранение неизменяемых данных: Координаты точки, константные настройки, записи из БД, которые не должны изменяться в ходе выполнения программы.
  • Использование в качестве ключа словаря: Так как кортеж хешируем и неизменяем, его можно использовать как ключ, в отличие от списка.
  • Возврат нескольких значений из функции: Позволяет элегантно вернуть несколько результатов.
  • Распаковка (unpacking): Удобное присваивание нескольких переменных за одну операцию.

Примеры:

# 1. Неизменяемые данные (координаты, RGB-цвет)
point = (10, 20)
color_red = (255, 0, 0)

# 2. Ключ в словаре (страна, город)
city_coordinates = {('Россия', 'Москва'): (55.7558, 37.6173), ('Франция', 'Париж'): (48.8566, 2.3522)}

# 3. Возврат нескольких значений из функции
def get_user_info(user_id):
    # ... логика получения данных
    return (user_id, 'Иван Иванов', 'ivan@example.com')  # Возвращаем кортеж

id, name, email = get_user_info(1)  # Распаковка кортежа

# 4. Сравнение с list: кортеж занимает меньше памяти и работает быстрее для итераций.
import sys
my_list = [1, 2, 3]
my_tuple = (1, 2, 3)
print(sys.getsizeof(my_list))  # 88 (байт, для примера)
print(sys.getsizeof(my_tuple)) # 72 (меньше)