Алгоритмы обработки данных

Фильтрация и накопление результата

Содержание курса

Сравнение трёх паттернов: когда что применять

Три паттерна, которые мы разобрали, решают разные задачи — и выбор между ними определяется одним вопросом: что должно быть в результате?

Тип результата Паттерн Ключевые слова в задаче
Подмножество элементов (список) Фильтрация «отбери», «найди только», «выбери те, которые»
Одно агрегированное число Аккумулятор «посчитай сумму», «найди произведение», «сколько всего»
Таблица: элемент → количество (словарь) Словарь частот «сколько раз встречается», «как часто», «распределение»

Как мы видели в предыдущих секциях, один и тот же список допускает все три вопроса — и каждый требует своего паттерна.

Формулировка задачи — главная подсказка. Если в условии фигурирует конкретный порог или признак отбора, скорее всего нужна фильтрация. Если нужно свернуть весь список в одно число — аккумулятор. Если важно знать, какие значения повторяются и как часто — словарь частот.

Словарь частот стоит особняком: внутри он устроен как гибрид двух других паттернов. Он перебирает все элементы без отбора — как аккумулятор — но накапливает не одну переменную, а целую таблицу счётчиков по ключам. Именно поэтому его нельзя заменить ни фильтрацией (она не считает повторения), ни простым аккумулятором (он не разделяет элементы по значению).

В следующем уроке все три паттерна встретятся в одной программе — там нужно будет и отфильтровать данные, и посчитать итог, и построить статистику по частоте. Умение выбрать нужный паттерн под конкретный вопрос — это и есть главный практический результат текущего урока.