itertools.accumulate () kontra functools.reduce ()
W Pythonie 3.3,itertools.accumulate()
, która zwykle wielokrotnie stosuje operację dodawania do dostarczanej iteracji, może teraz przyjąć argument funkcji jako parametr; Oznacza to, że teraz pokrywa się zfunctools.reduce()
. Z pobieżnym spojrzeniem główne różnice między tymi dwoma wydają się być następujące:
accumulate()
domyślnie sumuje, ale nie pozwala na wyraźne podanie dodatkowego warunku początkowegoreduce()
nie domyślnie używa żadnej metody, ale pozwala na dostarczenie warunku początkowego do użycia z sekwencjami elementów 1/0 iaccumulate()
zajmuje pierwsze miejscereduce()
najpierw przyjmuje funkcję.Czy są jakieś inne różnice między nimi? Czy jest to tylko kwestia zachowania dwóch funkcji o początkowo różnych zastosowaniach, które zaczynają zbiegać się w czasie?