Python Lambda Tutorial

November 18

le espressioni lambda sono una potente funzione nel linguaggio di programmazione Python. Tuttavia, possono essere un po 'intimidatorio a prima vista, soprattutto perché non hanno equivalente diretto in linguaggi come Java che la maggior parte dei corsi di programmazione sono tenuti in. Queste espressioni consentono al programmatore di definire funzioni senza nome al volo e assegnarli a un nome di variabile . È possibile creare una serie di funzioni con lambda e li assegna ad un singolo nome di variabile.

istruzione

1 Definire una funzione con la parola chiave lambda e assegnarlo alla "somma" nome di variabile.

sum = lambda x, y: x + y

Test per vedere se la funzione lambda funziona con il seguente comando:

sum (2,2)
4

Questo dimostra il minimo assoluto per lambda, ma si può fare un po 'di più con esso.

2 Definire più di una funzione lambda a una singola variabile.

funzionamento = { 'sum': lambda x, y: x + y, 'sub': lambda x, y: xy, 'mul': lambda x, y: x * y, 'div': lambda x, y: x / y}
operazione [ 'sum'] (2,2)
4
operazione [ 'mul'] (2,4)
8
operazione [ 'div'] (4,4)
1
operazione [ 'sub'] (4,1)
3

Che ancora non rivela una delle caratteristiche più belle di lambda. In realtà, più di ogni altra caratteristica, questo è quello che genera il più entusiasmo per le funzioni lambda in lingue più vecchi come il LISP che lo sostenevano.

3 Utilizzare lambda, in una singola linea, eseguire un'operazione su ogni elemento in un elenco e restituire un nuovo elenco contenente i risultati dell'operazione.

alist = [0, 1, 2, 3, 4]
Mappa (lambda x: x * 6, alist)
[0, 6, 12, 18, 24]

Per un altro esempio, per trovare le lunghezze di tutte le parole in una stringa, utilizzare la seguente funzione lambda:

String = "E 'stata una lunga giornata in ufficio, ma quando torno a casa a te, è tutto l'utile."
Mappa (lambda x: len (x), string.split ())
[2, 3, 1, 4, 4, 3, 2, 3, 7, 3, 4, 1, 4, 4, 2, 4, 2, 2, 3, 11]

Questo permette ai programmatori di fare, in una breve e facile da leggere linea, che un programmatore Java richiederebbe quattro o cinque linee di raggiungere.