Terapkan fungsi dua argumen secara kumulatif ke item iterable, dari kiri ke kanan, sehingga mengurangi iterable menjadi satu nilai. Misalnya, pengurangan(lambda x, y: x+y, [1, 2, 3, 4, 5]) menghitung ((((1+2)+3)+4)+5). Argumen kiri, x, adalah nilai akumulasi dan argumen kanan, y, adalah nilai pembaruan dari iterable. Jika inisial opsional ada, ini ditempatkan sebelum item iterable dalam perhitungan, dan berfungsi sebagai default ketika iterable kosong. Jika inisial tidak diberikan dan iterable hanya berisi satu item, item pertama dikembalikan.
functools.reduce(function, iterable[, initializer])
def reduce(function, iterable, initializer=None):
it = iter(iterable)
if initializer is None:
value = next(it)
else:
value = initializer
for element in it:
value = function(value, element)
return value