functools.reduce
Сворачивает элементы в одно значение, применяя функцию по очереди.
Python 3.13
functools.reduce(function, iterable[, initial])Параметры
- functionCallable
- Функция двух аргументов: накопленное значение и очередной элемент.
- iterableIterable
- Элементы для свёртки.
- initialAnyнеобязательный
- Начальное значение; с ним пустой iterable не вызывает ошибку.
Возвращаемое значение
Итоговое накопленное значение.
Примеры
Произведение чисел
Python 3.13
from functools import reduce
print(reduce(lambda acc, x: acc * x, [1, 2, 3, 4]))24
Начальное значение для пустого списка
Python 3.13
from functools import reduce
print(reduce(lambda acc, x: acc + x, [], 0))0
Подробности
Для пустого iterable без initial вызывает TypeError. Для частых случаев есть готовые функции — sum, math.prod, max, min, str.join: они понятнее.
