Зачем хранить много значений
Прежде чем список методов — вопрос «зачем»: одна переменная хранит одно значение, а коллекция хранит их сразу много под одним именем.
Одна переменная — одно значение. А если их пятьсот?
До сих пор каждая переменная хранила одно значение. Представьте, что нужно сохранить оценки пяти учеников:
score_1 = 95
score_2 = 82
score_3 = 91
score_4 = 77
score_5 = 88
Работает. А теперь представьте, что учеников не пять, а пятьсот. Заводить
score_1 … score_500 вручную — не просто
долго, а по сути невозможно поддерживать: нельзя пройтись по ним циклом, нельзя посчитать
среднее одной строкой, нельзя добавить оценку 501-го ученика без правки кода.
Коллекция: одно имя — много значений
Для этого в Python есть коллекции — типы данных, которые хранят сразу много значений под одним именем:
scores = [95, 82, 91, 77, 88]
print(scores)
scores указывает на один объект-список, а список хранит ссылки на несколько отдельных значений. Подробности внутреннего устройства CPython нам сейчас не нужны — этой картинки достаточно.Карта коллекций Python
В Python четыре основных встроенных коллекции. Они делятся на три семейства по тому, как устроен доступ к значениям:
[1, 2, 2](1, 2, 2){1, 2}{"a": 1}Как выбрать? Пока — ориентир, не закон
Полный разбор выбора структуры будет в §11.22, но уже сейчас полезно иметь общий ориентир: