Reduce

Implementa una funzione generica chiamata reduce che accetta tre argomenti: una funzione (come primo argomento), una lista (come secondo argomento) e un valore iniziale (come terzo argomento).
Lo scopo della funzione reduce è applicare iterativamente la funzione data agli elementi della lista, mantenendo un totale aggiornato inizializzato con il terzo argomento, e infine restituire un singolo valore risultante.
La funzione reduce dovrebbe eseguire i seguenti passaggi:
  1. Accettare tutti gli argomenti.
  1. Iterare sulla lista, applicando la funzione fornita al totale corrente e all'elemento attuale della lista a ogni passo.
  1. Dopo aver elaborato tutti gli elementi della lista, restituire il valore finale del totale.
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