Come utilizzare le funzioni Lambda in Python (funzioni anonime)
Scopri come utilizzare le funzioni lambda in Python. Padroneggia funzioni anonime, callback in linea e dati di elenchi di ordinamento con chiavi lambda.
Panoramica
In Python, le funzioni sono cittadine di prima classe, nel senso che possono essere assegnate a variabili, passate come argomenti ad altre funzioni e restituite da funzioni. Mentre le funzioni standard vengono dichiarate utilizzando la parola chiave "def", Python fornisce anche una sintassi abbreviata per creare funzioni inline anonime: le funzioni "lambda".
Una funzione lambda viene definita con la parola chiave "lambda", seguita da un elenco di argomenti, due punti e una singola espressione. La sintassi è "argomenti lambda: espressione". A differenza delle funzioni "def", le lambda non richiedono un'istruzione "return"; il risultato dell'espressione viene restituito automaticamente. Sono limitati a una singola linea logica, il che li rende ideali per operazioni semplici e una tantum.
Le funzioni lambda vengono comunemente utilizzate come argomenti per funzioni di ordine superiore come `sorted()`, `map()` e `filter()`. Ad esempio, puoi passare una funzione lambda all'argomento "chiave" di `sorted()` per definire criteri di ordinamento personalizzati o utilizzarli come funzioni di callback leggere all'interno di applicazioni grafiche o guidate da eventi.
Codice e output di esecuzione
Questo script dimostra la costruzione di funzioni anonime leggere utilizzando lambda.
# 1. Simple lambda function assigned to a variable
double = lambda x: x * 2
print("Double of 5:", double(5))
# 2. Multi-argument lambda
add = lambda x, y: x + y
print("Sum of 3 + 4:", add(3, 4))
# 3. Using lambda as a sorting key (sorting by age)
people = [
{"name": "Alice", "age": 28},
{"name": "Bob", "age": 22},
{"name": "Charlie", "age": 35}
]
people.sort(key=lambda person: person["age"])
print("Sorted by age:", people)Double of 5: 10
Sum of 3 + 4: 7
Sorted by age: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 28}, {'name': 'Charlie', 'age': 35}]Implementazione passo dopo passo
- Scrivi la parola chiave lambda seguita dai nomi dei parametri separati da virgole.
- Inserisci i due punti, seguiti dalla singola espressione che desideri valutare e restituire.
- Passa la lambda direttamente come callback a funzioni come sorted(), map() o filter().
Domande frequenti
Una funzione lambda può contenere loop o più istruzioni?
No, le funzioni lambda in Python sono strettamente limitate a una singola espressione. Se hai bisogno di logica complessa, loop o assegnazioni di variabili, devi definire una funzione standard usando def.
Dovrei assegnare funzioni lambda alle variabili?
Generalmente no. Le linee guida PEP 8 suggeriscono di utilizzare un'istruzione def standard invece di assegnare un lambda a una variabile, poiché le funzioni standard forniscono nomi di traccia dello stack migliori.
Argomenti correlati
Scopri come ordinare un elenco in Python utilizzando il metodo sort() e la funzione sorted(). Scopri l'ordinamento delle chiavi personalizzato e gli esempi di ordine inverso.
Come utilizzare la comprensione delle liste in PythonScopri come utilizzare la comprensione delle liste in Python. Scrivi loop concisi, applica filtri condizionali e crea matrici con una sintassi visiva pulita.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Funzioni Python
Padroneggiare le funzioni Python. Scopri come scrivere codice riutilizzabile utilizzando def, definire argomenti, restituire valori e comprendere l'ambito a livello locale e globale.
Foglio informativo sulle funzioni del modulo matematico Python
Guida di riferimento rapido per la libreria standard matematica di Python. Impara come utilizzare le funzioni trigonometriche, logaritmiche, di arrotondamento e aritmetiche.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.