Lambda in Python

Studiamo le funzioni lambda in Python, ovvero le funzioni anonime.

Nelle precedenti lezioni abbiamo visto come creare delle funzioni utilizzando la parola chiave def seguita dal nome della funzione e dagli argomenti se ce ne sono.

Al contrario la funzione lambda non ha un nome, ma solo gli argomenti e un’unica espressione di calcolo.

La sintassi della funzione lambda in Python è dunque la seguente:

lambda argomenti: espressione

Esempi sulla funzione lambda in Python

Facciamo alcuni esempi per capire meglio il funzionamento.

Come primo esempio costruiamo una funzione lambda utile per calcolare il cubo di un numero:


f_cube = lambda x : x * x * x
print(f_cube(3))

La stessa funzione utilizzando def si poteva scrivere in questo modo:



def f_cube(x):
      return x * x * x

print(f_cube(3))

Il risultato è chiaramente lo stesso.

Possiamo anche scrivere in maniera molto compatta in questo modo:



print((lambda x: x * x * x)(3))

Più argomenti nella funzione lambda in Python

Si possono inserire anche più argomenti, separandoli da virgole. Facciamo un esempio con una funzione che calcola l’area di un rettangolo.



f_area = lambda x, y : x * y
print(f_area(4,5))

#in maniera compatta
print((lambda x, y: x*y)(4,5))

Valutare un’espressione Booleana

Possiamo anche valutare un’espressione booleana.

Prendiamo ad esempio in considerazione un numero e stabiliamo se è pari oppure dispari.



f_even = lambda x : x % 2 == 0
print(f_even(8))
print(f_even(9))

L’output prodotto sarà dunque questo:

True
False

Perchè usare la funzione lambda in Python

Sicuramente uno dei motivi per cui viene utilizzata è quello di risparmiare righe di codice, migliorandone la leggibilità. Quando infatti devo usare una funzione per un tempo breve, non serve definirla.

Inoltre uno dei campi maggiori di utilizzo è quando si vuole passare una funzione come argomento di un’altra funzione.

Vedremo molto spesso le funzioni lambda utilizzare con le funzioni map() o filter() di Python.

Facciamo un primo esempio utilizzando filter():


list_number = [11,8,4,5]

new_list = list(filter(lambda x: x%2 == 0, list_number))

print(new_list)

In questo caso l’output prodotto sarà questo: [8, 4]

Oppure possiamo anche utilizzare map().


list_number = [11,8,4,5]

new_list = list(map(lambda x: x%2==0, list_number))

print(new_list)

L’output prodotto sarà questo: [False, True, True, False]

La lista sarà popolata con i valori booleani.

Potremmo anche utilizzare un ciclo for in:


list_number = [11,8,4,5]

new_list = [even for even in list_number if even %2 ==0]

print(new_list)

Infine possiamo aggiungere che l’utilizzo della funzione lambda in Python è particolarmente indicato quando si lavora con alcune librerie, come ad esempio Pandas, Numpy, ecc.

Invece non si può utilizzare quando ad esempio vogliamo eseguire più operazioni indipendenti nell’ambito di una funzione. O ancora quando ho bisogno di scrivere istruzioni su più righe.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

Continua la lettura su: https://www.codingcreativo.it/lambda-in-python/ Autore del post: Coding Creativo Fonte: https://www.codingcreativo.it

Related Articles

Emergenza Coronavirus COVID-19: notizie e provvedimenti

Ordinanza del 2 giugno 2021 Ulteriori misure urgenti in materia di contenimento e gestione dell’emergenza epidemiologica da COVID-19. 

Ordinanza 29 maggio 2021 Ai fini del contenimento della diffusione del virus Sars-Cov-2, le attività economiche e sociali devono svolgersi nel rispetto delle “Linee guida per la ripresa delle attività economiche e sociali”, elaborate dalla Conferenza delle Regioni e delle Provincie autonome, come definitivamente integrate e approvate dal Comitato tecnico scientifico, che costituiscono parte integrante della presente ordinanza

Ordinanza 21 maggio 2021 Protocollo condiviso di aggiornamento delle misure per il contrasto e il contenimento della diffusione del virus SARS-Cov-2/COVID-19 negli ambienti di lavoro.

Ordinanza 21 maggio 2021 Linee guida per la gestione in sicurezza di attivita’ educative non formali e informali, e ricreative, volte al benessere dei minori durante l’emergenza COVID-19.

Ordinanza 21 maggio 2021 Ulteriori misure urgenti in materia di contenimento e gestione dell’emergenza epidemiologica da COVID-19.

Vuoi rimanere aggiornato sulle nuove tecnologie per la Didattica e ricevere suggerimenti per attività da fare in classe?

Sei un docente?

soloscuola.it la prima piattaforma
No Profit gestita dai

Volontari Per la Didattica
per il mondo della Scuola. 

 

Tutti i servizi sono gratuiti. 

Associazione di Volontariato Koinokalo Aps

Ente del Terzo Settore iscritta dal 2014
Tutte le attività sono finanziate con il 5X1000