‫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.