Reduce
Reduce is a higher-order function that processes an iterable recursively, applying some operation to the next element of the iterable and the already calculated value. You also may know it termed fold, inject, accumulate or somehow else.
Reduce with result = result + element
brings you the sum of all elements, result = min(result, element)
gives you the minimum and result = element
works for getting the last element of a sequence.
Python provides reduce
function (that was moved to functools.reduce
in Python 3):
In : reduce(lambda s, i: s + i, range(10))
Out: 45
In : reduce(lambda s, i: min(s, i), range(10))
Out: 0
In : reduce(lambda s, i: i, range(10))
Out: 9
Also, if you ever need such simple lambdas like a, b: a + b
, Python got you covered with operator
module:
In : from operator import add
In : reduce(add, range(10))
Out: 45