Python - пример PyDash сокращения с аккумулятором
Ищу пример кода с использованием модуля Python PyDash для сокращения с аргументом аккумулятора и того, как вывести его с предыдущим и текущим.
1 ответ
pydash.reduce_
не сильно отличается от встроенногоfunctools.reduce
.
Хороший пример использования аккумулятора (илиinitial
параметр в случае functools) должен использовать его как «нейтральный элемент»:
def factorial(n):
return pydash.reduce_(range(1, n), lambda total, x: total*x, accumulator=1)
В этом случае,1
используется в качестве начального значения и не влияет на результат (поскольку 1*x=x), но что более важно: оно будет использоваться в качестве возвращаемого значения, если в нем нет элементов.range(1, n)
.
И действительно,factorial(0) == factorial(1) == 1
является требуемым результатом.