Commit 6d837a37 authored by Raymond Hettinger's avatar Raymond Hettinger

Add pure python equivalent code for reduce().

parent c5f310c8
...@@ -1058,7 +1058,19 @@ available. They are listed here in alphabetical order. ...@@ -1058,7 +1058,19 @@ available. They are listed here in alphabetical order.
it is placed before the items of the iterable in the calculation, and serves as it is placed before the items of the iterable in the calculation, and serves as
a default when the iterable is empty. If *initializer* is not given and a default when the iterable is empty. If *initializer* is not given and
*iterable* contains only one item, the first item is returned. *iterable* contains only one item, the first item is returned.
Roughly equivalent to::
def reduce(function, iterable, initializer=None):
it = iter(iterable)
if initializer is None:
try:
initializer = next(it)
except StopIteration:
raise TypeError('reduce() of empty sequence with no initial value')
accum_value = initializer
for x in iterable:
accum_value = function(accum_value, x)
return accum_value
.. function:: reload(module) .. function:: reload(module)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment