Python Lambda
Una funzione lambda è una piccola funzione anonima.
Una funzione lambda può accettare un numero qualsiasi di argomenti, ma può avere solo un'espressione.
Sintassi
lambda arguments : expression
L'espressione viene eseguita e il risultato viene restituito:
Esempio
Aggiungi 10 all'argomento a
e restituisci il risultato:
x = lambda a : a + 10
print(x(5))
Le funzioni Lambda possono accettare un numero qualsiasi di argomenti:
Esempio
Moltiplica argomento a
con argomento
b
e restituisce il risultato:
x = lambda a, b : a * b
print(x(5, 6))
Esempio
Riepiloga argomento a
,
b
e c
e restituisce il risultato:
x = lambda a, b, c : a + b + c
print(x(5, 6,
2))
Perché utilizzare le funzioni Lambda?
Il potere di lambda viene mostrato meglio quando li usi come funzione anonima all'interno di un'altra funzione.
Supponiamo di avere una definizione di funzione che accetta un argomento e quell'argomento verrà moltiplicato per un numero sconosciuto:
def myfunc(n):
return lambda a : a * n
Usa quella definizione di funzione per creare una funzione che raddoppi sempre il numero che invii:
Esempio
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
Oppure, usa la stessa definizione di funzione per creare una funzione che triplichi sempre il numero che invii:
Esempio
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
Oppure, usa la stessa definizione di funzione per creare entrambe le funzioni, nello stesso programma:
Esempio
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
Utilizzare le funzioni lambda quando è richiesta una funzione anonima per un breve periodo di tempo.