Funzioni Lambda Python: guida alle funzioni anonime
Scopri come scrivere funzioni lambda anonime in Python. Padroneggia modelli di programmazione funzionale utilizzando map(), filter() e sorted() con sintassi lambda.
Panoramica
In Python, le funzioni lambda, note anche come funzioni anonime, sono funzioni piccole, veloci, di una riga che non richiedono la parola chiave standard "def" o un nome formale. Sono pensati per un utilizzo temporaneo e rapido e consentono di passare la logica funzionale come argomento direttamente in linea. Ciò rende il codice più compatto, riducendo il sovraccarico di scrittura di funzioni di supporto complete che vengono chiamate solo in un posto.
La sintassi di una funzione lambda è semplice: "argomenti lambda: espressione". A differenza delle funzioni standard, una lambda non ha un'istruzione `return` esplicita; l'espressione viene valutata e restituita automaticamente. Inoltre, le funzioni lambda sono limitate a una singola espressione, il che significa che non è possibile scrivere cicli complessi su più righe, assegnazioni o blocchi di condizioni al loro interno, applicando un approccio pulito e funzionale.
Le funzioni Lambda vengono comunemente utilizzate in combinazione con funzioni integrate di ordine superiore come "map()" (che applica una funzione a ogni elemento in un elenco), "filter()" (che conserva gli elementi che corrispondono a una condizione) e "sorted()" (che ordina gli elementi utilizzando una chiave di ordinamento personalizzata). Ad esempio, ordinare un elenco di dizionari in base a una chiave di dizionario specifica è un gioco da ragazzi quando si utilizza una lambda come chiave di ordinamento. Comprendere le funzioni lambda ti offre uno strumento vitale per scrivere codice Python pulito.
Codice e output di esecuzione
Ordinamento di elenchi di dizionari complessi e filtraggio di set di dati utilizzando funzioni anonime in linea.
# Sorting using lambda
students = [
{"name": "Alice", "grade": 88},
{"name": "Bob", "grade": 95},
{"name": "Charlie", "grade": 90}
]
# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
print(f"- {student['name']}: {student['grade']}")
# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88
Odd numbers: [1, 3, 5, 7]Implementazione passo dopo passo
- Passaggio di criteri di ordinamento personalizzati a list.sort() e sorted()
- Applicazione di trasformazioni in linea nelle pipeline di data science
- Definizione di callback rapidi nelle app dell'interfaccia utente basate sugli eventi
Domande frequenti
Una funzione lambda può accettare più argomenti?
Sì, puoi definire più argomenti separati da virgole, ad esempio lambda x, y: x + y.
Perché le funzioni lambda sono chiamate anonime?
Perché vengono creati senza associazione di nomi, a differenza delle funzioni def che registrano un nome specifico nello spazio dei nomi locale.
Argomenti correlati
Padroneggiare le funzioni Python. Scopri come scrivere codice riutilizzabile utilizzando def, definire argomenti, restituire valori e comprendere l'ambito a livello locale e globale.
Comprensioni di PythonScrivi Python più pulito e più veloce. Elenco principale, dizionario e comprensioni di set con esempi pratici, condizioni di filtraggio e cicli nidificati.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Come utilizzare le funzioni Lambda in Python
Scopri come utilizzare le funzioni lambda in Python. Padroneggia funzioni anonime, callback in linea e dati di elenchi di ordinamento con chiavi lambda.
Foglio informativo sui metodi delle stringhe Python
Una guida di riferimento completa per la manipolazione delle stringhe Python. Padroneggia la formattazione, la ricerca, la divisione, la sostituzione e il controllo delle proprietà delle stringhe.
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.