Кортежи в Python: создание, распаковка и отличие от списка
💻 Информатика · 9 класс
Кортеж, или tuple , — упорядоченная последовательность, у которой нельзя заменить, добавить или удалить отдельный элемент. Он удобен для небольшой записи с фиксированным смыслом по

Кортеж, или tuple, — упорядоченная последовательность, у которой нельзя заменить, добавить или удалить отдельный элемент. Он удобен для небольшой записи с фиксированным смыслом позиций: координат точки, результата вычисления, пары «имя и возраст». Неизменяемость относится к самому набору ссылок: объект, находящийся внутри кортежа, при этом может быть изменяемым.
Как создать и прочитать кортеж
Запись point = (4, 7) создаёт два элемента. point[0] возвращает 4: индексация начинается с нуля. Отрицательный индекс point[-1] обращается к последнему элементу. Скобки делают запись понятнее, однако решающую роль при упаковке играет запятая: one = (4,) — кортеж, а one = (4) — число. Пустой кортеж записывают как ().
Кортеж поддерживает длину, перебор и срезы. Для values = (2, 4, 6, 8) выражение len(values) даёт 4, а values[1:3] — (4, 6). Правая граница среза не включается. Для поиска значения можно использовать проверку 6 in values, результат которой — True.
Распаковка на примере
Пусть функция измерения вернула size = (12, 5). Команда width, height = size связывает 12 с шириной и 5 с высотой. Количество имён должно соответствовать количеству элементов, если не используется специальная распаковка со звёздочкой. Такая запись яснее обращения к позициям, когда смысл каждой части известен.
Заменить координату командой point[0] = 9 нельзя: возникнет TypeError. Чтобы получить другую точку, создают новый кортеж: point = (9, point[1]). Переменная теперь указывает на новый объект; исходный кортеж не был отредактирован. Если же планируется регулярно менять набор данных, обычно удобнее список.
Важная тонкость
У кортежа box = ([1, 2], 3) первый элемент — список. Команда box[0].append(5) изменит этот список, но не заменит первый элемент кортежа. Поэтому фраза «внутри кортежа вообще ничего нельзя менять» неверна. Это также важно при выборе ключа словаря: кортеж со списком внутри не становится допустимым ключом только благодаря внешнему типу tuple.
Проверьте себя
1. Что получится из len((7,))? Ответ: 1; запятая создала одноэлементную последовательность. 2. Для t = (3, 8, 9) найдите t[-1] и t[:2]. Ответ: 9 и (3, 8). 3. Можно ли выполнить t.append(10)? Нет: у кортежа нет такого метода. Нужно создать новый объект либо выбрать список.
Частые ошибки — забытая запятая в одноэлементном кортеже, ожидание изменения через присваивание по индексу и путаница между изменением вложенного списка и заменой позиции кортежа. Перед выбором структуры спросите себя: это изменяющаяся коллекция или запись с устойчивым числом частей?
Связанные материалы
Основы программирования на Python, Что такое массив.