Funzioni Python Lambda con esempi
Pubblicato: 2022-06-04Python: un'introduzione
Python è un linguaggio di programmazione generico estremamente popolare. È un linguaggio interpretato di alto livello che enfatizza la leggibilità del codice con l'uso di indentazioni significative. Python viene utilizzato dai programmatori per scrivere codici logici e puliti per progetti di qualsiasi scala.
Python è stato concepito negli anni '80 come successore del linguaggio di programmazione ABC da Guido Van Rossum. Da allora, Python è rimasto un linguaggio di programmazione popolare grazie alla sua versatilità.
Funzioni — Introduzione
Le funzioni sono blocchi di codice che funzionano quando vengono richiamati e possono essere richiamati n volte in un programma. Sono istruzioni di codice strutturato e svolgono una funzione specifica e possono essere utilizzate in qualsiasi momento. Le funzioni sono fondamentalmente classificate in:
- Funzione definita dall'utente (USF) : funzioni personalizzabili che possono essere modificate secondo i requisiti del programmatore.
- Funzioni integrate (BIF) : funzioni che non possono essere personalizzate e devono essere utilizzate nel modo in cui sono disponibili.
Impara i corsi di Data Science online su upGrad
Funzioni Python Lambda
Le funzioni Python Lambda sono essenzialmente anonime perché non possiedono un nome definito. Una funzione def è usata per denotare una normale funzione in Python. Nel frattempo, la parola chiave Lambda viene utilizzata per definire una funzione Python anonima.
La funzione Lambda è una piccola funzione che può richiedere diversi argomenti ma solo un'espressione. Hanno anche una sintassi più restrittiva ma concisa rispetto alle normali funzioni Python. La funzione lambda è stata aggiunta al linguaggio Python nel 1994 insieme alle funzioni map (), filter () e reduce ().
Dai un'occhiata ai nostri programmi di scienza dei dati negli Stati Uniti
Programma di certificazione professionale in Data Science e Business Analytics | Laurea Magistrale in Data Science | Laurea Magistrale in Data Science | Programma di certificazione avanzato in Data Science |
Programma Executive PG in Data Science | Bootcamp di programmazione Python | Programma di certificazione professionale in Data Science per il processo decisionale aziendale | Programma avanzato in scienza dei dati |
Per definire una funzione anonima, si deve usare la parola chiave lambda come def viene usata per le normali funzioni. Ci sono tre parti in una funzione anonima definita in Python:
- La parola chiave lambda
- Parametri o una variabile associata
- Corpo funzionale
Sintassi
La sintassi di una funzione lambda è la seguente:
Lambda p1, p2: espressione
p1 e p2 sono i parametri qui. Non ci sono restrizioni per l'aggiunta di parametri nella funzione lambda. Puoi aggiungerne quanti ne vuoi. Ma la funzione lambda è sintatticamente limitata a un'espressione.
Esempi per la funzione lambda in Python:
Esempio 1
x ="Funzione Lambda"
# lambda ottiene il passaggio alla stampa
(lambda x : print(x))(x)
Produzione
Funzione Lambda
Esempio 2
x = lambda a : a + 10
stampa(x(5))
Produzione
15
I nostri studenti leggono anche: Impara Python online gratuitamente
Differenze tra funzione normale e funzione lambda
La funzione lambda possiede alcune differenze sintattiche rispetto alle normali funzioni.
- Nel corpo vengono utilizzate solo espressioni e non affermazioni. Se vengono utilizzate istruzioni come pass, assert, return o raise, l'output mostrerà un SyntaxError.
Esempio
>>> (lambda x: asserisci x == 2)(2)
File “<input>”, riga 1
(lambda x: asserire x == 2)(2)
^
SyntaxError: sintassi non valida
- Una funzione lambda può esistere solo come una singola espressione. Anche se l'espressione è diffusa in tutto il corpo utilizzando più stringhe, può rimanere solo come un'unica espressione.
Esempio :
>>> (lambda x:
… (x % 2 e 'dispari' o 'pari'))(3)
'strano'
Quando l'argomento lambda è dispari, il codice restituisce la stringa dispari e pari quando non lo è. Il codice si estende su due righe poiché si trova all'interno delle parentesi ma rimane come un'unica espressione.
- La funzione lambda non supporta le annotazioni di tipo. L'aggiunta di annotazioni a una sintassi lambda causerà un errore di sintassi.
- IIFE o Espressione di funzione richiamata immediatamente è una funzione eseguita non appena viene definita. È anche noto come funzione anonima a esecuzione automatica. IIFE è una diretta conseguenza della funzione lambda, poiché una funzione lambda è richiamabile così come è definita.
Ora, vediamo che le differenze chiave tra le funzioni normali e le funzioni lambda sono:
(Fonte)
Funzioni Lambda: pro e contro
Professionisti
- Rende il codice più leggibile.
- Ideale per funzioni che vengono utilizzate una sola volta.
- Facile da capire e può essere utilizzato per semplici spiegazioni logiche.
Contro:
- Non è possibile eseguire più espressioni indipendenti.
- L'uso della funzione lambda non è l'ideale se un codice si estende per più di una riga in una normale funzione (def).
- Tutti gli input, gli output e le operazioni non possono essere spiegati in una docstring come in una normale funzione.
Dove usare le Lambda?
Anche se le normali funzioni def e le funzioni lambda presentano differenze chiave, internamente vengono trattate internamente.
- L'uso comune delle funzioni lambda in Python è per la programmazione funzionale. È possibile utilizzare lambda nella programmazione funzionale per fornire una funzione come parametro a una funzione diversa.
- Se è necessario ridurre il numero di righe per specificare una funzione, i lambda sono la strada da percorrere.
- Lambda viene utilizzato anche con funzioni di ordine superiore come map(), reduce() ecc.
- La risposta agli eventi del framework dell'interfaccia utente può essere monitorata utilizzando le funzioni lambda.
Dove astenersi dall'usare le funzioni lambda?
- Scrivere complicate funzioni lambda non è una buona pratica in quanto sarà difficile da decifrare.
- Astenersi dall'utilizzare le funzioni lambda per operazioni ricorrenti.
- Se il codice non segue la Python Style Guide (PEP8).
Le funzioni Lambda vengono testate esattamente come le normali funzioni. Sia unittest che doctest possono essere usati per questo.
Leggi i nostri articoli popolari sugli Stati Uniti - Data Science
Corso di Analisi Dati con Certificazione | JavaScript Corso online gratuito con certificazione | Domande e risposte sull'intervista Python più poste |
Domande e risposte sull'intervista dell'analista di dati | Le migliori opzioni di carriera nella scienza dei dati negli Stati Uniti [2022] | SQL Vs MySQL: qual è la differenza |
Una guida definitiva ai tipi di dati | Stipendio per sviluppatori Python negli Stati Uniti | Stipendio dell'analista di dati negli Stati Uniti: stipendio medio |
Funzione Lambda con filtro()
Filter() è una funzione Python incorporata ed elenca come argomenti. Filter() viene utilizzato quando tutti gli elementi iterabili sono in un elenco e viene restituito un altro elenco che contiene elementi per i quali la funzione è true.
Esempio :
# Codice Python per illustrare
# filter() con lambda()
li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]
lista_finale = lista(filtro(lambda x: (x%2 != 0) , li))
stampa(lista_finale)
Produzione:
[5, 7, 97, 77, 23, 73, 61]
(fonte)
Esempio :
# Programma per filtrare solo gli elementi pari da un elenco
mia_lista = [1, 5, 4, 6, 8, 11, 3, 12]
nuova_lista = lista(filtro(lambda x: (x%2 == 0) , mia_lista))
stampa(nuovo_elenco)
Produzione
[4, 6, 8, 12]
Funzione Lambda con map()
La funzione mappa viene utilizzata quando tutti gli elementi sono nell'elenco e l'elenco viene restituito con gli elementi restituiti da quella funzione per ogni elemento.
Esempio : Per raddoppiare il valore di ogni voce dell'elenco, il codice è il seguente:
mia_lista = [1, 5, 4, 6, 8, 11, 3, 12]
nuova_lista = lista(mappa(lambda x: x * 2 , mia_lista))
stampa(nuovo_elenco)
Produzione:
[2, 10, 8, 12, 16, 22, 6, 24]
Esempio : per cubi ogni numero nell'elenco, il codice è il seguente
lista_1 = [1,2,3,4,5,6,7,8,9]
a cubetti = map(lambda x: pow(x,3), list_1)
lista (a cubetti)
Produzione:
[1, 8, 27, 64, 125, 216, 343, 512, 729]
Funzione Lambda con funzione reduce()
La funzione reduce() in Python è una lista e un argomento. Viene chiamato per restituire un elenco ridotto iterabile e nuovo. È in qualche modo simile alla funzione di addizione.
Esempio 1
Nota: questo esempio proviene dalla libreria functools.
Per ottenere la somma di una lista, il codice sarebbe,
# Codice Python per illustrare
# reduce() con lambda()
# per ottenere la somma di una lista
da functools import reduce
li = [5, 8, 10, 20, 50, 100]
somma = riduci((lambda x, y: x + y), li)
stampa (somma)
Produzione:
193
Conclusione
L'uso delle funzioni lambda in Python è stato per molto tempo un argomento controverso tra i programmatori. Sebbene sia vero che le lambda possono essere sostituite con funzioni integrate, comprensioni di elenchi e librerie standard, è necessaria anche una comprensione delle funzioni lambda. Ti aiuta a comprendere i principi fondamentali della programmazione e a scrivere codici migliori.
Anche se non usi le funzioni lambda personalmente, potrebbero esserci casi in cui potresti incontrarle nei programmi di altre persone. Quindi, si consiglia comunque di avere una conoscenza di base delle funzioni lambda.
Se stai cercando di imparare Python a tutti gli effetti e migliorare la tua carriera nella scienza dei dati e nell'analisi aziendale, il programma di certificazione professionale online di upGrad in scienza dei dati e analisi aziendale della Top US University - University of Maryland è la soluzione migliore.
Il programma offre la possibilità di studiare in una delle 100 migliori università mondiali e ottenere un certificato dal Maryland Smith per aumentare le tue possibilità di successo nel campo. È un corso di 9 mesi con accesso a oltre 300 partner di assunzione, opportunità di colloquio assicurate per le matricole e sei chiamate di tutoraggio.
Cosa sono i decoratori in Python?
Una funzione in Python che prende l'argomento di una funzione e restituisce un'altra funzione è chiamata decoratore. È indicato con la sintassi del decoratore. I decoratori possono essere applicati nelle funzioni lambda ma non con la sintassi del decoratore. Di solito è implementato per scopi di debug. In alternativa, una funzione lambda può essere utilizzata come decoratore, ma non è consigliabile.
Quali sono gli argomenti nelle funzioni Python Lambda?
Le funzioni Lambda come le normali funzioni def supportano i diversi modi di passare argomenti. Questi includono: Argomento solo parola chiave Argomenti parola chiave/ Argomenti NAmed Varargs/ Elenco di argomenti di variabili Elenco di argomenti di parole chiave variabili.
Cosa sono le chiusure nelle funzioni Python Lambda?
Le chiusure o le chiusure lessicali sono funzioni in cui ogni variabile libera eccetto i parametri è vincolata a un valore particolare nell'ambito di inclusione della funzione. Le chiusure possono essere chiamate da qualsiasi luogo. Le funzioni Lambda come le normali funzioni def possono essere chiusure.