Vai al contenuto principale
Pubblicato il

Lambda in Python

Condividi:

Introduzione

Python, essendo un linguaggio così versatile, offre vari strumenti che semplificano la vita dei programmatori. Uno di questi è la funzione lambda. Attraverso questo articolo, sveleremo i misteri di questa funzionalità, esplorandone i vantaggi e le limitazioni.

L'Origine del Lambda

Il termine lambda non è esclusivo di Python. Ha le sue radici nel calcolo lambda, una struttura matematica e logica. In programmazione, è frequentemente associato a linguaggi che supportano la programmazione funzionale, come Lisp e Haskell.

Caratteristiche Principali

  1. Concisione: Lambda permette di creare funzioni in una singola riga.
  2. Semplicità: Si evita l'uso delle parole chiave def e return.
  3. Temporanee: Sono frequentemente usate per operazioni che non verranno riutilizzate.
# Confronto tra def e lambda
def moltiplicazione_def(a, b):
  return a * b

moltiplicazione_lambda = lambda a, b: a * b

print('Usando def:', moltiplicazione_def(5, 4))       # Usando def: 20
print('Usando lambda:', moltiplicazione_lambda(5, 4)) # Usando lambda: 20

Applicazioni Comuni del Lambda

1. Ordinamento Personalizzato

Immaginiamo di avere una lista di tuple, dove vogliamo ordinare per il secondo elemento:

elementi = [(1, 2), (3, 1), (4, 5)]
elementi_ordinati = sorted(elementi, key=lambda x: x[1])
print(elementi_ordinati) # [(3, 1), (1, 2), (4, 5)]

2. Filtraggio dei Dati

Possiamo usare lambda con la funzione filter() per filtrare elementi da una lista:

numeri = [1, 2, 3, 4, 5, 6]
pari = list(filter(lambda x: x % 2 == 0, numeri))
print(pari) # [2, 4, 6]

Trappole Comuni

Nonostante sia utile, lambda non è sempre la scelta migliore. In funzioni più complesse, può rendere il codice meno leggibile. Inoltre, lambda è limitato a una singola espressione, il che significa che non può contenere più istruzioni o comandi.

Conclusione

La funzione lambda è uno strumento potente, ma come qualsiasi strumento, deve essere usata nel contesto giusto. È perfetta per operazioni piccole, ma per attività più complesse le funzioni tradizionali sono più appropriate.

Happy coding!