Фильтрация и накопление результата
Содержание курса
Сравнение трёх паттернов: когда что применять
Три паттерна, которые мы разобрали, решают разные задачи — и выбор между ними определяется одним вопросом: что должно быть в результате?
| Тип результата | Паттерн | Ключевые слова в задаче |
|---|---|---|
| Подмножество элементов (список) | Фильтрация | «отбери», «найди только», «выбери те, которые» |
| Одно агрегированное число | Аккумулятор | «посчитай сумму», «найди произведение», «сколько всего» |
| Таблица: элемент → количество (словарь) | Словарь частот | «сколько раз встречается», «как часто», «распределение» |
Как мы видели в предыдущих секциях, один и тот же список допускает все три вопроса — и каждый требует своего паттерна.
Формулировка задачи — главная подсказка. Если в условии фигурирует конкретный порог или признак отбора, скорее всего нужна фильтрация. Если нужно свернуть весь список в одно число — аккумулятор. Если важно знать, какие значения повторяются и как часто — словарь частот.
Словарь частот стоит особняком: внутри он устроен как гибрид двух других паттернов. Он перебирает все элементы без отбора — как аккумулятор — но накапливает не одну переменную, а целую таблицу счётчиков по ключам. Именно поэтому его нельзя заменить ни фильтрацией (она не считает повторения), ни простым аккумулятором (он не разделяет элементы по значению).
В следующем уроке все три паттерна встретятся в одной программе — там нужно будет и отфильтровать данные, и посчитать итог, и построить статистику по частоте. Умение выбрать нужный паттерн под конкретный вопрос — это и есть главный практический результат текущего урока.
