Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Funzioni Lambda | Ricorsione e Funzioni Lambda
Tutorial Sulle Funzioni in Python

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 in cui è possibile specificare una funzione al volo.

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:

123
is_even = lambda x: 'even' if x % 2 == 0 else 'odd' print(is_even(4)) # 'even' print(is_even(7)) # 'odd'

Utilizzo di lambda con le funzioni integrate

Un caso d'uso comune è la combinazione delle funzioni lambda con funzioni integrate come map() e filter():

123456789
prices = [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 casi limite direttamente nell'espressione:

123
safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10

La funzione max(a, b) confronta due numeri e restituisce quello maggiore. Quando si abbina una variabile a 0 - come in max(x, 0) - funge da rete di sicurezza contro i numeri negativi:

  • Se x è positivo (ad esempio, 100), max(100, 0) restituisce 100 perché 100 è maggiore di 0;

  • Se x è negativo (ad esempio, -50), max(-50, 0) restituisce 0 perché 0 è maggiore di -50.

Questo elimina la necessità di una struttura if-else complessa quando si desidera forzare qualsiasi importo negativo o non valido a diventare immediatamente 0.

lambda
Note
Nota

Le funzioni lambda sono più adatte per logiche brevi e a singola espressione. Se la funzione richiede più righe o una logica complessa, è preferibile utilizzare una funzione def tradizionale.

Compito

Scorri per iniziare a programmare

Esiste un elenco di prezzi (prices), e occorre implementare un'espressione lambda che prenda un prezzo come parametro e detragga il 13% di tasse da esso.

  1. Definire un'espressione lambda utilizzando la parola chiave lambda.
  2. L'espressione lambda deve accettare un solo parametro (price).
  3. Se il price è negativo, considerarlo non valido e restituire 0 utilizzando direttamente la funzione max() all'interno dell'espressione lambda.
  4. La lambda deve prima verificare il prezzo e poi detrarre il 13% dall'importo valido.
  5. Utilizzare una list comprehension per applicare apply_tax a ogni elemento di prices.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 4
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt