Reduce

Реализуйте универсальную функцию под названием reduce, которая принимает три аргумента: функцию (в качестве первого аргумента), список (в качестве второго аргумента) и начальное значение (в качестве третьего аргумента).
Цель функции reduce — итеративно применять заданную функцию к элементам списка, поддерживая накопленное значение, инициализированное третьим аргументом, и в конечном итоге вернуть единственное результирующее значение.
Функция reduce должна выполнять следующие шаги:
  1. Принять все аргументы.
  1. Итерироваться по списку, на каждом шаге применяя предоставленную функцию к накопленному значению и текущему элементу списка.
  1. После обработки всех элементов списка вернуть финальное значение накопленного результата.
def reduce():
    ...

print(reduce(lambda total, item: total + item, [1, 2, 3, 4], 0))     # 10
print(reduce(lambda total, item: total + item, [1, 2, 3, 4], 4))     # 14
print(reduce(lambda total, item: total * item, [1, 2, 3, 4], 1))     # 24
print(reduce(lambda total, item: max(total, item), [1, 2, 3, 4], 0)) # 4
print(reduce(lambda total, item: min(total, item), [1, 2, 3, 4], 0)) # 0
print(reduce(lambda total, item: min(total, item), [1, 2, 3, 4], 5)) # 1
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue