Проверяет понимание агрегации последовательностей и функций высшего порядка.
reduce используется для последовательного объединения элементов в одно значение. Он применяет функцию к элементам по очереди, сохраняя промежуточный результат. Функция находится в модуле functools. Часто применяется для суммирования, перемножения или других операций накопления.
Функция reduce применяется, когда нужно свести последовательность к одному значению.
reduce — это функция, которая:
Берёт первые два элемента
Применяет функцию
Использует результат и следующий элемент
Повторяет процесс до конца
from functools import reduce
numbers = [1, 2, 3, 4]
result = reduce(lambda a, b: a + b, numbers)
print(result) # 10
Процесс выглядит так:
1 + 2 = 3
3 + 3 = 6
6 + 4 = 10
Применяется:
при вычислении агрегатов
при построении цепочек операций
при работе с функциональным стилем
Но часто проще использовать встроенные функции:
sum(numbers)
Он полезен, если:
операция нестандартная
требуется сложная агрегация
нужно сохранить функциональный стиль
reduce сводит последовательность к одному значению через накопление результата. В простых случаях лучше использовать встроенные функции, но для сложных операций reduce остаётся полезным инструментом.