We're back after a server migration that caused effbot.org to fall over a bit harder than expected. Expect some glitches.

reduce

reduce(function, sequence[, initializer])

Applies function (which should be a function or other callable object taking two arguments) cumulatively to the items of sequence, from left to right, so as to reduce the sequence to a single value.

For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). The left argument, x, is the accumulated value and the right argument, y, is the updated value from the sequence.

If the optional initializer is present, it is placed before the items of the sequence in the calculation, and serves as a default when the sequence is empty. If initializer is not given and the sequence contains only one item, the first item is returned.