In questo articolo, cercheremo di conoscere Python Lambda.
Definizione
Lambda è una funzione definita senza nome. Questo può richiedere più argomenti, ma è consentita solo un'espressione che viene valutata e restituita. Dove sono richiesti oggetti funzione, possiamo usare la funzione lambda.
Sintassi:
argomenti lambda: espressione
Esempio 1: La funzione seguente viene utilizzata per calcolare il cubo di un numero.
def cubo(a):ritorna a*a*a
stampa (cubo (3))
La funzione sopra può essere scritta usando lambda, come mostrato di seguito:
p = lambda x : x*x*xstampa(p(3))
Esempio 2: La funzione seguente viene utilizzata per calcolare la somma di due numeri.
def somma_2(x,y):ritorna x + y
print(somma_2(10,20))
La funzione sopra può essere scritta usando lambda, come mostrato di seguito:
p = lambda x,y : x + ystampa(p(10,20))
Esempio 3: L'esempio seguente per lambda accetta più argomenti.
p = lambda x, y, z : x + y + zstampa(p(10, 5, 3))
Esempio 4: Questa funzione moltiplica il numero per 2 e può essere scritta utilizzando la funzione Lambda come di seguito:
def funzione(n):restituisce lambda x : x * n
moltiplicare_per_2 = funzione(2)
print(moltiplica_per_2(11))
print(moltiplica_per_2(15))
Esempio 5: La funzione accetta la funzione come argomento e restituisce il risultato.
argomento_funzione = lambda p, f: p + f(p)print(function_argument(5, lambda p: p * p))
print(argomento_funzione(10, lambda x: x - 3))
print(argomento_funzione(10, lambda x: x + 5))
print(argomento_funzione(10, lambda x: x / 5))
Esempio 6: Nell'esempio seguente, viene utilizzato lambda per ordinare i valori.
#(nome,cognome,età)data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dati.sort(key=lambda x:x[0])#sort in base al nome
stampa (dati)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dati.sort(key=lambda x:x[1])#sort in base al cognome
stampa (dati)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dati.sort(key=lambda x:x[2])#sort in base all'età
stampa (dati)
Ora vai nell'interprete python3.
La funzione lambda viene utilizzata in molti metodi incorporati. I seguenti sono alcuni esempi:
1. Carta geografica
Questa funzione mappa ogni elemento in sequenza usando la funzione lambda.
Sintassi:
map(funzione, seq)
Ex:
numeri = [1,2,3,4,5,6]
Qui, moltiplicheremo ogni elemento nell'elenco per 2.
mul_2 = mappa(lambda x: x*2, numeri)
print(list(mul_2)) # Restituisce l'oggetto mappa e lo converte come lista.
Nella funzione sopra, ogni elemento della lista viene passato alla funzione lambda e la funzione lambda lo moltiplicherà per 2.
numeri = [1,2,3,4,5,6]mul_2 = mappa(lambda x: x*2, numeri)
print(lista(mul_2))
2. Filtro
Questa funzione filtra tutti gli elementi di un elenco per i quali la funzione lambda restituisce True.
Sintassi:
filtro(funzione, seq)
Ex:
numeri = [0,1,2,3,4,5,6,7,8,9,10]
odd_nums = filter(lambda x: x % 2, nums)
print(list(num_dispari)) # Restituisce l'oggetto mappa e lo scrive come lista type.
odd_nums = filter(lambda x: x % 2, nums)
print(lista(num_dispari))
3. Ridurre
Questa funzione restituisce un singolo valore applicando la funzione func() al seq.
Sintassi:
ridurre (funzione, seq)
Ex:
numeri = [0,1,2,3,4,5,6,7,8,9,10]
valore = riduci(lambda x,y: x+y, num)
stampa (valore)
Nell'elenco sopra, prenderà i primi 2 elementi ed eseguirà l'addizione. Il risultato di un'addizione verrà aggiunto al terzo elemento e così via. Infine, restituirà un singolo valore.
Nota: questo metodo non è disponibile nella versione python3+.
numeri = [0,1,2,3,4,5,6,7,8,9,10]valore = riduci(lambda x,y: x+y, num)
stampa (valore)
Conclusione
Da questo articolo abbiamo appreso molti aspetti della funzione lambda. A seconda di ciò di cui ha bisogno il programma, possiamo usarlo e migliorare la codifica Pythonpy. Questo è più comunemente usato per passare argomenti a un'altra funzione (ad esempio, abbiamo visto le funzioni sopra mappare, filtrare e ridurre).