Выбор коллекции под задачу
Уроки курсаВыбор коллекции под задачу
За предыдущие уроки мы разобрали каждую коллекцию отдельно: список, кортеж, словарь, множество. Теперь задача другая — не «как пользоваться», а «что выбрать, когда стоишь перед чистым листом».
Четыре сценария выбора коллекции
Когда пишешь программу, данные уже существуют в виде какой-то реальности: очередь, координата, справочник, журнал посещений. Коллекция — это не просто «куда положить», а инструмент, который должен соответствовать природе этих данных. Если выбор сделан правильно, код читается естественно и работает без костылей.
Чтобы не угадывать, достаточно ответить на один из четырёх вопросов о своих данных.
Вопрос 1: нужно ли сохранять порядок и менять содержимое?
Если да — это список (list). Данные поступают, меняются, удаляются, добавляются. Важно, что элемент стоит на конкретной позиции, и эта позиция имеет смысл.
Вопрос 2: набор данных фиксирован и не должен меняться?
Если да — это кортеж (tuple). Координаты точки, размеры окна, дата рождения — всё, что однажды задано и не подлежит изменению. Неизменяемость здесь не ограничение, а гарантия.
Вопрос 3: каждый элемент имеет имя (ключ), по которому к нему обращаются?
Если да — это словарь (dict). Не «второй элемент», а «элемент с именем phone». Доступ по смысловому ключу, а не по порядковому номеру.
Вопрос 4: важна только уникальность, порядок не важен?
Если да — это множество (set). Нужно знать, что элемент есть, и при этом избавиться от дублей автоматически.
Эти четыре вопроса выстраиваются в простую схему принятия решения:
Данные изменяемые и упорядоченные? → list Данные фиксированные? → tuple Доступ по имени (ключу)? → dict Нужна только уникальность? → set
Ключевой момент: сценарии не перекрываются. Если данные изменяемые и нужен доступ по ключу — это словарь, не список. Если нужна уникальность и порядок не важен — множество, не список с ручной проверкой дублей. Каждый сценарий ведёт к ровно одному типу, и именно это делает выбор воспроизводимым.
