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.

Prova questa soluzione nell'editor

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.

lambda_functions.py
Prova nell'editor
# 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)
Uscita terminale
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

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.