3 обзор

 # No import needed


# No import required...
from functools import reduce # ... but it can be loaded from the functools module


from functools import reduce # mandatory


 

reduce уменьшает Iterable путем применения функции повторно на следующем элементе iterable и совокупный результате до сих пор.

 def add(s1, s2):
    return s1 + s2

asequence = [1, 2, 3]

reduce(add, asequence)  # equivalent to: add(add(1,2),3)
# Out: 6

 

В этом примере мы определили собственную add функции. Однако, Python поставляется со стандартной эквивалентной функцией в operator модуле:

 import operator
reduce(operator.add, asequence)
# Out: 6

 

reduce также могут быть переданы начальное значение:

 reduce(add, asequence, 10)
# Out: 16