Ответ
Кортеж (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 (меньше)