Reduce

Implemente uma função genérica chamada reduce que aceita três argumentos: uma função (como primeiro argumento), uma lista (como segundo argumento) e um valor inicial (como terceiro argumento).
O propósito da função reduce é aplicar iterativamente a função fornecida aos elementos da lista, mantendo um total acumulado inicializado com o terceiro argumento, e finalmente retornar um único valor resultante.
A função reduce deve realizar os seguintes passos:
  1. Aceitar todos os argumentos.
  1. Iterar sobre a lista, aplicando a função fornecida ao total acumulado e ao elemento atual da lista em cada passo.
  1. Após processar todos os elementos da lista, retornar o valor final do total acumulado.
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