there is python’s build-in function reduce()'s definition
=====================================================================
reduce( function, sequence[, initializer])
Apply function of 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 update 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 sequence contains only one
item, the first item is returned.
thanks.