Parliamo dell'ultima riduzione, e questa è un po' avanzata e potrebbe essere un po' difficile da capire all'inizio,
ma è bene sapere che esiste e che puoi saperne di più praticandola e
leggendo della documentazione su il tuo.
Ora, reduce non fa parte della funzione integrata di Python.
Per poter usare reduce, dobbiamo fare qualcosa del genere.
Non l'avete mai visto prima e questo è qualcosa a cui parleremo nella sezione moduli del
corso.
Ma essenzialmente ciò che sta accadendo qui è quando abbiamo scaricato Python Interpreter e il pacchetto Python, nel nostro
caso, questo Reppel lo fa già per noi.
Possiamo importare qualcosa da queste foto.
E gli strumenti func sono ciò che chiamiamo una cintura degli strumenti che possiamo usare per gli strumenti funzionali forniti con l'installazione
di Python.
E da lì, c'è una funzione specifica che possiamo importare.
Quindi sto dicendo, ehi, dagli strumenti func di questa toolbelt, voglio che tu importi la funzione reduce in modo che
possiamo usarla di nuovo nel nostro codice, qualcosa che tratteremo più avanti nel corso.
Quindi per ora, copia e incolla questa riga.
Quindi, rimuoviamo parte della nostra lista e qui usiamo reduce.
Ora, con la riduzione, avremo bisogno di alcune cose.
Primo.
Abbiamo bisogno della funzione.
E poi abbiamo bisogno della sequenza o dei dati.
Quindi quale sarà la funzione, prima di tutto, i nostri dati saranno la nostra mia lista, quindi
dirò la mia lista e la funzione ridotta ci permette di fare qualcosa di interessante.
Posso dargli, diciamo, una funzione.
E questa funzione, la chiameremo accumulatore.
E l'accumulatore prende due parametri, e ricorda, questo verrà chiamato da reduce, quindi reduce sarà incaricato
di dare questi due parametri dai dati che gli diamo, che è la
mia lista.
Il primo parametro sarà quello che chiamiamo l'accumulo, o nel mio caso, l'Axi.
E poi ecco l'oggetto.
Ora, dove diventa davvero interessante è che quando passiamo per la prima volta la mia lista dalla riduzione, otterremo il
primo elemento.
Il primo elemento sarà in questo parametro.
Tuttavia, qual è questo asse inizialmente?
Bene, se tolgo solo le parentesi qui.
E così riduci vedi che abbiamo la funzione.
La sequenza, che nel nostro caso sarà la nostra lista e quindi l'iniziale e l'iniziale è ciò che sarà
l'accumulatore.
Quindi, ancora una volta, diciamo che avremo la funzione accumulatore che non chiameremo ancora.
Riduci lo farà per noi.
Gli darò la lista.
O i dati su cui vogliamo iterare e quindi darò un valore iniziale pari a zero.
Quindi ne abbiamo tre.
Parametri qui o tre argomenti che gli diamo.
Fammi chiudere le parentesi in cui lo ingrandisci un po' qui e assicurati che io sappia scrivere.
Ora, qui, il primo elemento sarà qualunque sia il primo elemento della mia lista.
E poi l'accumulatore andrà a zero se non gli diamo nulla o nel nostro caso, abbiamo
detto che l'accumulatore sarà zero.
Quindi la prima cosa che faremo è restituire l'accumulatore più l'articolo.
OK, esaminiamo questo uno per uno.
In realtà stamperò qui l'accumulatore e l'elemento solo così possiamo vedere e poi eseguirò
questo codice.
La riga 15 nell'oggetto non è iterabile.
E questo è un po' complicato, ma in realtà non abbiamo più bisogno dell'elenco perché reduce farà qualcosa di
interessante per noi.
Quindi rimuoviamo questo per ora e restituiamo tutto ciò che ci dà la riduzione.
E la stampa se clicco, corri.
Guarda quello.
Va bene, allora cos'è appena successo?
Diamo un'occhiata.
Ridurre.
Ci permette di ridurre qualcosa, una sorta di valore dall'iterabile che gli diamo.
Quindi andiamo per gradi.
Abbiamo la mia lista e la mia lista sta per essere applicata all'accumulatore attraverso ridotto.
L'accumulatore prenderà la mia lista.
E la prima cosa che farà nel primo passaggio sarà dire, ehi, quale sarà il mio
accumulatore?
Lo metterò a zero.
Quindi il primo accumulatore di passaggio sarà zero.
Un oggetto sarà uno, che è quello che vediamo qui.
E lo aggiungeremo zero più uno.
Quindi ora ne abbiamo restituito uno.
Ora, il secondo passaggio a.
Cosa succederà il secondo passaggio attraverso l'accumulatore cosa sarà, questo ritorno?
Quindi il prossimo passaggio a qualunque cosa venga restituito verrà riempito nell'accumulatore, quindi nel nostro caso,
zero più uno sarà uno.
Un elemento sarà due, uno più due sarà tre, quindi uno più due fa tre.
Quindi la prossima volta l'accumulatore sarà tre.
E mentre attraversiamo saranno anche tre, come puoi vedere qui.
E tre più tre fa sei.
Abbiamo appena accumulato tutti questi valori e ne abbiamo restituito uno solo.
Numero sei, abbiamo ridotto la nostra lista in una sorta di dati che abbiamo manipolato usando nel nostro caso,
l'accumulatore.
Ma avrei potuto fare tutto ciò che volevo qui.
Quindi, se, ad esempio, cambio questo in non uguale a 10, cosa pensi che accadrà se clicco su Esegui?
Ottengo 16 perché ho iniziato il mio accumulatore iniziale con 10, quindi era 10 più uno poi, così via e così via.
Ora si riduce davvero, davvero potente perché puoi fare molte cose con esso.
È davvero molto flessibile.
E in realtà sotto il cofano, funzioni come Map Filter stanno effettivamente usando questa riduzione sotto il cofano in modo che tu possa
effettivamente costruire la tua mappa e la funzione di filtro usando reduce.
Di nuovo, ridurre è un po' difficile da capire all'inizio, e ci vuole un po' di pratica per usarlo
davvero.
Ma è una di quelle cose che i programmatori avanzati amano davvero e che vedrai sempre di più
durante la tua carriera man mano che migliorerai.
Ci vediamo alla prossima.
Ciao ciao.