[Python-Dev] [Python-checkins] cpython: Add optional *func* argument to itertools.accumulate().

Nick Coghlan ncoghlan at gmail.com
Mon Mar 28 07:53:52 CEST 2011


On Mon, Mar 28, 2011 at 2:11 PM, Daniel Stutzbach <stutzbach at google.com> wrote:
> Is there a good use-case for the func argument?  I can only think of bad
> use-cases (where "func" does something that does not remotely resemble
> addition).  I fear that people will actually implement these bad use-cases,
> and I will have to try to read and understand their code.
> Adding the func argument seems analogous to adding a func argument to sum(),
> which would give it all of the power of reduce().

The difference lies in the fact that, because accumulate is an
iterator that yields a *running* result, the two corner cases that
make reduce problematic in practice (i.e. correctly handling empty and
1-item input iterables) are handled naturally.

The examples that Raymond gives in the docs (cumulative
multiplication, running min/max, cash flow accumulation) look fairly
solid to me.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list