In Python, le espressioni lambda sono una funzionalità che consente di creare funzioni anonime in modo rapido e conciso. Le espressioni lambda sono utilizzate soprattutto in situazioni in cui abbiamo bisogno di definire una funzione semplice. In questo articolo vedremo come utilizzare le espressioni lambda in Python.
Le espressioni lambda sono create utilizzando la parola chiave “lambda”, seguita da uno o più argomenti separati da virgola, quindi seguiti da “:” e l’espressione che rappresenta il valore restituito dalla funzione. Ad esempio, la seguente espressione lambda definisce una funzione che restituisce il quadrato di un numero:
square = lambda x: x**2
In questo modo, abbiamo definito una funzione lambda chiamata “square” che prende un argomento “x” e restituisce il suo quadrato.
Le espressioni lambda possono essere utilizzate ovunque ci sia una funzione anonima richiesta, ad esempio come argomento di una funzione come “map”, “filter” o “reduce”. Ad esempio, la seguente espressione lambda può essere utilizzata per filtrare i numeri pari in una lista:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # Output: [2, 4, 6, 8, 10]
In questo caso, abbiamo utilizzato la funzione “filter” per filtrare i numeri pari nella lista “numbers”, utilizzando una funzione lambda che verifica se un numero è pari.
Le espressioni lambda possono anche essere utilizzate per creare funzioni di ordine superiore. Ad esempio, la seguente funzione di ordine superiore prende una funzione lambda come argomento e restituisce una nuova funzione che applica la funzione lambda a ogni elemento di una lista:
def apply_to_list(fn, lst): return [fn(x) for x in lst] numbers = [1, 2, 3, 4, 5] squared_numbers = apply_to_list(lambda x: x**2, numbers) print(squared_numbers) # Output: [1, 4, 9, 16, 25]
In questo caso, abbiamo utilizzato la funzione “apply_to_list” per applicare la funzione lambda “lambda x: x**2” a ogni elemento della lista “numbers”, restituendo una nuova lista con i numeri al quadrato.