[Python-ideas] itertools has starmap but no starreduce?
Vitor Bosshard
algorias at gmail.com
Fri Feb 12 17:54:34 CET 2010
2010/2/12 Andrey Fedorov <anfedorov at gmail.com>:
> Is that right, or am I missing something obvious?
The semantics are non-obvious, for one. I assume you mean that the
following lines would be equivalent:
starreduce(f, iterable, initial)
reduce(lambda x,y: f(x, *y), iterable, initial)
This is useful for the types of reduction where the result of the
function is one type, and the iterable is a sequence of args to that
function. For example:
reduce(lambda x,y: str.replace(x, *y), (('a', 'aa'), ('b', 'bb',)), some_string)
could be written as
starreduce(str.replace, (('a', 'aa'), ('b', 'bb',)), some_string)
It seems like a very narrow use-case, unless you mean something else.
Vitor
More information about the Python-ideas
mailing list