Глава 11 · Очень много информации!

Кортежи

Почти список, но неизменяемый — и именно поэтому иногда более подходящий выбор.

Кортеж (tuple) — почти то же самое, что список, но в круглых скобках и с одним принципиальным отличием: кортежи неизменяемы — после создания их нельзя изменить.

kortezhi.py
coords = (10, 20)
print(coords)
print(coords[0])   # 10 — индексация работает как у списков
kortezh_nelzya_menyat.py
coords = (10, 20)
coords[0] = 99   # TypeError: 'tuple' object does not support item assignment

Зачем нужны неизменяемые коллекции?

Неизменяемость — не недостаток, а гарантия: если вы передаёте координаты точки в другую часть программы как кортеж, вы точно знаете, что их никто случайно не изменит. Кортежи часто используют для координат, RGB-цветов и других «пакетов» значений, которые логически представляют собой единое целое.

Распаковка кортежа

raspakovka.py
coords = (10, 20)
x, y = coords
print(x, y)   # 10 20
Мы уже пользовались распаковкой
artist.position() в модуле turtle возвращает именно такой кортеж (x, y) — можно сразу распаковать его в две переменные.
Практика в Jupyter Notebook
11-06-kortezhi.ipynb · кортежи и распаковка
Открыть ноутбук →