functools.reduce
Функция functools.reduce используется для последовательного применения функции к элементам итерируемого объекта, сводя его к единственному значению. Она полезна для операций, требующих агрегации данных.
Синтаксис
functools.reduce(function, iterable[, initializer])
- function: функция, принимающая два аргумента, которую следует применить к элементам итерируемого объекта
- iterable: итерируемый объект, к элементам которого будет применяться функция
- initializer (необязательный): начальное значение, которое используется в качестве первого аргумента при первом вызове функции
Рассмотрим простую функцию, суммирующую два числа:
def add(x, y): return x + y
Используем reduce для суммирования всех элементов списка:
from functools import reduce numbers = [1, 2, 3, 4, 5] result = reduce(add, numbers) print(result) # Вывод: 15
reduce последовательно применяет функцию add к элементам списка: ((((1 + 2) + 3) + 4) + 5).
Если указать initializer, он будет использоваться как начальное значение:
result = reduce(add, numbers, 10) print(result) # Вывод: 25
В этом случае вычисление будет выглядеть как (((((10 + 1) + 2) + 3) + 4) + 5).