single
Funzioni Lambda
Scorri per mostrare il menu
Le funzioni lambda sono funzioni anonime, cioè non hanno un nome. Vengono create utilizzando la parola chiave lambda e sono spesso utilizzate per definire funzioni brevi dove è possibile specificare una funzione al momento.
La sintassi di base di una funzione lambda è la seguente:
lambda arguments: expression
lambda: la parola chiave che indica l'inizio della definizione di una funzione lambda;arguments: l'elenco degli argomenti che la funzione accetta;expression: l'espressione eseguita quando la funzione viene chiamata. Il risultato dell'espressione viene restituito come valore della funzione.
La caratteristica principale delle funzioni lambda è la loro sintassi concisa. Sono utili quando è necessario definire una funzione semplice senza scrivere molto codice.
Argomenti singoli e multipli
Una funzione lambda può accettare uno o più argomenti:
1234567# Single argument square = lambda x: x**2 print(square(5)) # 25 # Multiple arguments add = lambda x, y: x + y print(add(3, 5)) # 8
Logica condizionale nelle funzioni lambda
È possibile utilizzare un'espressione ternaria per aggiungere logica condizionale all'interno di una lambda:
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
Utilizzo di lambda con funzioni integrate
Un caso d'uso comune è la combinazione delle funzioni lambda con funzioni integrate come map() e filter():
123456789prices = [100, 200, 300] # Apply 10% discount to each price discounted = list(map(lambda price: price * 0.9, prices)) print(discounted) # [90.0, 180.0, 270.0] # Keep only prices above 150 expensive = list(filter(lambda price: price > 150, prices)) print(expensive) # [200, 300]
È possibile utilizzare anche max() all'interno di una lambda per gestire i casi limite direttamente nell'espressione:
123safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
Le funzioni lambda sono più adatte per logiche brevi e composte da una sola espressione. Se la funzione richiede più righe o una logica complessa, è preferibile utilizzare una funzione def tradizionale.
Scorri per iniziare a programmare
È presente una lista di prezzi (prices), e deve essere implementata una espressione lambda che prenda un prezzo come parametro e detragga il 13% di tasse da esso.
- Definizione di una espressione lambda utilizzando la parola chiave
lambda. - L'espressione lambda deve accettare un solo parametro (
price). - Se il
priceè negativo, considerarlo non valido e restituire 0 utilizzando direttamente la funzionemax()all'interno dell'espressione lambda. - La lambda deve prima verificare il prezzo e poi detrarre il 13% dall'importo valido.
- Utilizzare una list comprehension per applicare
apply_taxa ogni elemento diprices.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione