Cosa sono le funzioni Lambda e come usarle?



Impara le funzioni lambda di Python insieme alla differenza tra le funzioni normali e le funzioni lambda e come possono essere utilizzate in filter (), map (), reduce ().

Un nome è una convenzione utilizzata per fare riferimento o rivolgersi a qualsiasi entità. Quasi tutto ciò che ci circonda ha un nome. Anche il mondo della programmazione va di pari passo con questo. Ma è d'obbligo nominare tutto? Oppure puoi avere qualcosa che è semplicemente 'anonimo'? La risposta è si. ' fornisce funzioni Lambda, note anche come funzioni anonime che in realtà sono senza nome. Quindi andiamo avanti per conoscere questi 'anonimi misteri' di Python, nella seguente sequenza.

Quindi iniziamo :)





Perché utilizzare le funzioni Lambda di Python?


Lo scopo principale delle funzioni anonime viene visualizzato quando hai bisogno di una funzione solo una volta. Possono essere creati ovunque siano necessari. Per questo motivo, le funzioni Python Lambda sono anche conosciute come funzioni usa e getta che vengono utilizzate insieme ad altre funzioni predefinite come filter (), map (), ecc. Queste funzioni aiutano a ridurre il numero di righe del codice rispetto a normale .

Per dimostrarlo, andiamo oltre e impariamo a conoscere le funzioni Lambda di Python.



Cosa sono le funzioni Lambda di Python?


Le funzioni Python Lambda sono funzioni che non hanno alcun nome. Sono anche conosciute come funzioni anonime o senza nome. La parola 'lambda' non è un nome, ma una parola chiave. Questa parola chiave specifica che la funzione che segue è anonima.

Ora che sai a cosa si riferiscono queste funzioni anonime, spostiamoci oltre per vedere come scrivi queste funzioni Lambda Python.

Come scrivere funzioni Lambda in Python?

Una funzione Lambda viene creata utilizzando l'operatore lambda e la sua sintassi è la seguente:



SINTASSI:

argomenti lambda: espressione

Pitone funzione lambda può avere un numero qualsiasi di argomenti ma richiede solo una sola espressione. Gli input o gli argomenti possono iniziare da 0 e raggiungere qualsiasi limite. Proprio come qualsiasi altra funzione, va benissimo avere funzioni lambda senza input. Pertanto, puoi avere funzioni lambda in uno dei seguenti formati:

ESEMPIO:

lambda: 'Specificare lo scopo'

In questo caso, la funzione lambda non accetta argomenti.

ESEMPIO:

lambda auno: 'Specificare l'uso di un fileuno'

Qui, lambda sta prendendo un input che è ununo.

una semplice introduzione alla scienza dei dati

Allo stesso modo, puoi avere lambda auno, per2, per3..pern.

Facciamo alcuni esempi per dimostrarlo:

ESEMPIO 1:

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

PRODUZIONE: 9

ESEMPIO 2:

a = lambda x, y: x * y print (a (3,7))

PRODUZIONE: ventuno

Come puoi vedere, ho preso due esempi qui. Il primo esempio fa uso della funzione lambda con una sola espressione, mentre il secondo esempio ha due argomenti passati. Si noti che entrambe le funzioni hanno una singola espressione seguita dagli argomenti. Pertanto, le funzioni lambda non possono essere utilizzate dove sono necessarie espressioni su più righe.

D'altra parte, le normali funzioni python possono accettare un numero qualsiasi di istruzioni nelle loro definizioni di funzione.

In che modo le funzioni anonime riducono la dimensione del codice?

Prima di confrontare la quantità di codice richiesta, annotiamo prima la sintassi di e confrontalo con quello delle funzioni lambda descritte in precedenza.

Qualsiasi funzione normale in Python viene definita utilizzando un file def parola chiave come segue:

SINTASSI:

def nome_funzione (parametri):
dichiarazione (i)

Come puoi vedere, la quantità di codice richiesta per una funzione lambda è molto inferiore a quella delle normali funzioni.

Riscriviamo ora l'esempio che abbiamo fatto in precedenza utilizzando le normali funzioni.

ESEMPIO:

def my_func (x): return x * x print (my_func (3))

PRODUZIONE: 9

Come puoi vedere, nell'esempio sopra, abbiamo bisogno di un'istruzione return all'interno di my_func per valutare il valore del quadrato di 3. Al contrario, la funzione lambda non utilizza questa istruzione return, ma, il corpo della funzione anonima è scritto nella stessa riga della funzione stessa, dopo il simbolo dei due punti. Pertanto la dimensione della funzione è inferiore a quella di my_func.

Tuttavia, le funzioni lambda negli esempi precedenti vengono chiamate usando altre un. Questo viene fatto perché queste funzioni sono senza nome e quindi richiedono un nome da chiamare. Ma questo fatto potrebbe sembrare confuso sul motivo per cui utilizzare tali funzioni senza nome quando è necessario assegnare effettivamente un altro nome per chiamarle? E ovviamente, dopo aver assegnato il nome a alla mia funzione, non rimane più senza nome! Destra?

È una domanda legittima, ma il punto è che questo non è il modo giusto di utilizzare queste funzioni anonime.

Le funzioni anonime sono utilizzate al meglio all'interno di altri funzioni di ordine superiore che fanno uso di qualche funzione come argomento o restituiscono una funzione come output. Per dimostrarlo, passiamo ora al nostro prossimo argomento.

Funzioni Python Lambda all'interno di funzioni definite dall'utente:

Come accennato in precedenza, le funzioni lambda vengono utilizzate all'interno di altre funzioni per contrassegnare il massimo vantaggio.

Il seguente esempio è costituito da new_func che è una normale funzione Python che accetta un argomento x. Questo argomento viene quindi aggiunto a un argomento sconosciuto y che viene fornito tramite la funzione lambda.

ESEMPIO:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

PRODUZIONE:

6
5
Come puoi vedere, nell'esempio sopra, la funzione lambda che è presente in new_func viene chiamata ogni volta che facciamo uso di new_func (). Ogni volta, possiamo passare valori separati agli argomenti.

Ora che hai visto come usare le funzioni anonime all'interno di funzioni di ordine superiore, andiamo avanti per capire uno dei suoi usi più popolari che è all'interno dei metodi filter (), map () e reduce ().

Come utilizzare le funzioni anonime all'interno di filter (), map () e reduce ():

Funzioni anonime all'interno filtro():

apache spark rispetto a hadoop mapreduce

filtro():

Il metodo filter () viene utilizzato per filtrare gli iterabili dati (elenchi, insiemi, ecc.) Con l'aiuto di un'altra funzione, passata come argomento, per verificare che tutti gli elementi siano veri o falsi.

La sintassi di questa funzione è:

SINTASSI:

filtro (funzione, iterabile)

Consideriamo ora il seguente esempio:

ESEMPIO:

my_list = [2,3,4,5,6,7,8] new_list = list (filter (lambda a: (a / 3 == 2), my_list)) print (new_list)

PRODUZIONE: [6]

Qui, my_list è un elenco di valori iterabili che viene passato alla funzione di filtro. Questa funzione utilizza la funzione lambda per verificare se ci sono valori nell'elenco, che sarà uguale a 2 se diviso per 3. L'output consiste in una lista che soddisfa l'espressione presente all'interno della funzione anonima.

carta geografica():

La funzione map () in Python è una funzione che applica una data funzione a tutti gli iterabili e restituisce un nuovo elenco.

SINTASSI:

map (funzione, iterabile)

Facciamo un esempio per dimostrare l'uso delle funzioni lambda all'interno della funzione map ():

ESEMPIO:

my_list = [2,3,4,5,6,7,8] new_list = list (map (lambda a: (a / 3! = 2), li)) print (new_list)

PRODUZIONE:

copia profonda vs superficiale java

[Vero, Vero, Vero, Vero, Falso, Vero, Vero]

L'output sopra mostra che, ogni volta che il valore degli iterabili non è uguale a 2 quando diviso per 3, il risultato restituito dovrebbe essere True. Quindi, per tutti gli elementi in my_list, restituisce true ad eccezione del valore 6 quando la condizione cambia in False.

ridurre():

La funzione reduce () viene utilizzata per applicare qualche altra funzione a un elenco di elementi che vengono passati come parametro ad essa e infine restituisce un singolo valore.

La sintassi di questa funzione è la seguente:

SINTASSI:

ridurre (funzione, sequenza)

ESEMPIO:

from functools import reduce reduce (lambda a, b: a + b, [23,21,45,98])

L'esempio sopra è rappresentato nell'immagine seguente:

ridurre-python lambda-edureka

PRODUZIONE: 187

L'output mostra chiaramente che tutti gli elementi della lista sono aggiunto continuamente per restituire il risultato finale.

Con questo, arriviamo alla fine di questo articolo su 'Python Lambda'. Spero che tu sia chiaro con tutto ciò che è stato condiviso con te. Assicurati di esercitarti il ​​più possibile e di ripristinare la tua esperienza.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'Python Lambda' e ti risponderemo il prima possibile.

Per ottenere una conoscenza approfondita di Python e delle sue varie applicazioni, puoi iscriverti a live con supporto 24 ore su 24, 7 giorni su 7 e accesso a vita.