Bentornato, voglio parlarti di alcune utili funzioni che otteniamo che effettivamente ci permettono di pensare
in un paradigma di programmazione funzionale.
Il nome di queste funzioni sono map filter.
Zipp.
E ridurre in queste sono funzioni molto, molto utili e molto comuni che scriverai molto quando sarai un programma
Python.
Quindi esploriamoli.
Primo, inizieremo con MAP.
E map in realtà ci consente di semplificare il codice che abbiamo qui di moltiplicare per due.
Vedete, con la matematica, l'ho disponibile come funzione, come funzione incorporata, e qui vediamo che
diamo una funzione al primo parametro e quindi il secondo parametro è un iterabile.
Un buon modo per pensarci è che vogliamo intraprendere una sorta di azione qui.
Quindi una funzione e quindi i dati su cui vogliamo agire.
Quindi diciamo nel nostro caso, uno, due, tre.
Quindi quale azione vogliamo intraprendere?
Uno due tre.
Bene, vogliamo moltiplicare per due, quindi diciamo moltiplicare.
Per due.
Ora, devo spostarlo in basso perché dobbiamo prima definire la funzione.
Ed eseguilo in questo modo, quindi invece di stamparlo, facciamolo.
Stampa.
In questo modo, se lo eseguo.
Ottengo un oggetto mappa in questa posizione di memoria.
E map ci dà automaticamente questo oggetto che ha creato in questa memoria.
Quindi, per poterlo effettivamente visualizzare, dobbiamo trasformarlo in un elenco come questo.
Quindi se eseguo questo.
Dice che l'oggetto in linea per int non è iterabile, beh, è perché con MAP, non è più necessario
eseguire questa creazione di un elenco e poi aggiungerlo a un elenco.
Vedete, la cosa bella di MAP è che gli fornisco alcuni dati e poi questi dati vengono elaborati da questo.
E tutto ciò che dobbiamo fare con la funzione map è avere una funzione che restituisce.
Questa parte, Eitam per due, quindi invece di avere tutto questo codice, tutto ciò che dobbiamo fare è dire return.
Voce volte a.
Quindi cambiamo questo parametro in item.
E guarda il codice un po' più in dettaglio.
Quindi con la mappa, dico, ehi, voglio che tu esegua la funzione, moltiplica per due, nota qui che non
ho nemmeno le parentesi perché non ho bisogno di chiamarla mappa.
fa per me?
Map dice solo, ehi, dammi solo la funzione, io mi occuperò del resto.
Quindi non sto chiamando la funzione qui.
La mappa chiamerà la funzione per me.
Dico solo, ehi, quando chiamo Map in questo modo.
Voglio che tu usi questa funzione a questo indirizzo di memoria e usi questi dati.
Ricordi il nostro paradigma di programmazione funzionale?
Abbiamo dati su cui si agisce, quindi li separiamo.
Ora, questa funzione prenderà ciascuno degli elementi nei nostri commestibili, nel nostro caso, la prima volta che l'elemento sarà
uno, poi due, poi tre.
E poi tutto ciò che dobbiamo fare è restituire l'effetto che vogliamo avere su quell'oggetto.
Nel nostro caso, per farlo, questa mappa esegue automaticamente questa funzione per noi e scorre tutti gli
elementi nell'iterabile e restituisce per noi un nuovo oggetto mappa che convertiremo in un elenco
se lo eseguo.
Ne prendo due, quattro, sei.
Ora, ecco la parte bella, se lo faccio, diciamo la mia lista e dico uno, due, tre.
E ho cambiato la mia lista qui.
In questo modo e alla fine, stampa anche la mia lista se clicco su Esegui.
Vedrai che la mia lista non è cambiata.
Ricordare?
Una funzione pura è una funzione che non influenza il mondo esterno in questo modo, la mappa ci consente di creare un
elenco completamente nuovo.
Questo non modifica la mia lista.
Quindi la mia lista è immutabile, giusto?
Non lo cambiamo e tutto ciò che fa è mappare la funzione, se ne occupa e ci restituisce un nuovo elenco.
Ma non influenziamo il mondo esterno.
Non ci sono effetti collaterali in questa funzione.
Stiamo semplicemente moltiplicando elemento per elemento per due creando un nuovo elenco da questo.
E ogni volta che gli diamo lo stesso input, il risultato sarà lo stesso output.
Molto, molto interessante e la mappa è estremamente utile perché ogni volta che abbiamo qualcosa su
cui possiamo iterare e vogliamo cambiare, diciamo che abbiamo e-mail o nomi utente e dobbiamo aggiornare i nomi utente per, diciamo,
essere tutti in maiuscolo .
In tal caso, possiamo iterare e usare la funzione matematica, cambiare tutti i nomi utente nel nostro elenco in, diciamo, la
mappa delle lettere maiuscole sarà una di quelle funzioni che usi molto nella tua carriera di programmatore.
E spero che tu possa vedere qui quanto sia pulito e piacevole, ancora una volta, usare paradigmi di programmazione funzionale.
Passiamo al prossimo.
Parliamo di Filtro dopo.