itertools.accumulate () против functools.reduce ()
В Python 3.3itertools.accumulate()
который обычно многократно применяет операцию сложения к предоставленной итерации, теперь может принимать аргумент функции в качестве параметра; это означает, что теперь пересекается сfunctools.reduce()
, При поверхностном взгляде основные различия между ними теперь кажутся следующими:
accumulate()
по умолчанию суммирование, но неt позволяет вам явно указать дополнительное начальное условиеreduce()
Безразлично»• по умолчанию для любого метода, но позволяет вам предоставить начальное условие для использования с последовательностями 1/0-элемента, иaccumulate()
занимает многократное первое времяreduce()
берет на себя функцию первой.Есть ли другие различия между ними? Или это просто вопрос поведения двух функций с изначально различными видами использования, которые начинают сходиться со временем?