il Prossimo Capitolo: Elenco di Comprensione
Lambda, filtro, ridurre e mappa
Operatore Lambda
Alcuni piace, altri lo odiano e molti hanno paura dell’operatore lambda. Siamo sicuri che ti piaceràquando hai finito con questo capitolo del nostro tutorial., In caso contrario, puoi imparare tutto sulle “Comprensioni delle liste”, Guido van Rossums ha preferito farlo, perchégli non piace Lambda, mappare, filtrare e ridurre entrambi.
L’operatore lambda o la funzione lambda è un modo per creare piccole funzioni anonime, cioè funzioni senza un nome. Queste funzioni sono funzioni usa e getta, cioè sono necessarie solo dove sono state create.Le funzioni Lambda vengono utilizzate principalmente in combinazione con le funzioni filter (), map () e reduce ().La funzione lambda è stata aggiunta a Python a causa della richiesta da parte dei programmatori Lisp.,
La sintassi generale di una funzione lambda è abbastanza semplice:
lambda argument_list: expression
L’elenco degli argomenti consiste in un elenco di argomenti separati da virgole e l’espressione è un’espressione aritmetica che utilizza questi argomenti. È possibile assegnare la funzione a una variabile per dargli un nome.
Il seguente esempio di una funzione lambda restituisce la somma dei suoi due argomenti:
>>> f = lambda x, y : x + y>>> f(1,1)2
La funzione map ()
Il vantaggio dell’operatore lambda può essere visto quando viene utilizzato in combinazione con la funzione map ().,
map() è una funzione con due argomenti:
r = map(func, seq)
Il primo argomento func è il nome di una funzione e il secondo una sequenza (ad esempio una lista) seq. map() applica la funzione func a tutti gli elementi della sequenza seq. Restituisce una nuova lista con gli elementi modificati da funcIn nell’esempio sopra non abbiamo usato lambda. Usando lambda, non avremmo dovuto definire e nominare le funzioni fahrenheit () e celsius (). Si può vedere questo nella seguente sessione interattiva:map () può essere applicato a più di un elenco. Le liste devono avere la stessa lunghezza., mappa() sarà applyits funzione lambda per gli elementi delle liste di argomenti, cioè prima si applica a elementi con il carattere 0 indice, poi per gli elementi con il 1 ° di indice fino all’n-esimo indice è raggiunto:
>>> a = >>> b = >>> c = >>> map(lambda x,y:x+y, a,b)>>> map(lambda x,y,z:x+y+z, a,b,c)>>> map(lambda x,y,z:x+y-z, a,b,c)
Possiamo vedere nell’esempio di cui sopra che il parametro x ottiene i suoi valori dalla lista, mentre y getsits valori di b e z dalla lista c.
Filtri
La funzione di filtro(funzione di elenco) offre un modo elegante per filtrare tutti gli elementi di un elenco,per il quale funzione la funzione restituisce True.
Il filtro funzione(f,l) ha bisogno di una funzione f come primo argomento., f restituisce un valore booleano, vale a dire oitherTrue o False. Questa funzione verrà applicata ad ogni elemento dell’elenco l. Solo se f restituisce True l’elemento dell’elenco verrà incluso nell’elenco dei risultati.
Riduzione di una lista
La funzione reduce (func, seq) applica continuamente la funzione func () alla sequenza seq. Restituisce il valore asingle.,
Se seq = , chiamando ridurre(func, seq) funziona in questo modo:
Possiamo illustrare questo processo nel seguente esempio:
>>> reduce(lambda x,y: x+y, )113
Il diagramma seguente mostra i passaggi intermedi del calcolo:
Esempi di ridurre()
Determinare il massimo di un elenco di valori numerici utilizzando ridurre:
>>> f = lambda a,b: a if (a > b) else b>>> reduce(f, )102>>>
Calcolando la somma dei numeri da 1 a 100:
>>> reduce(lambda x, y: x+y, range(1,101))5050
il Prossimo Capitolo: Elenco di Comprensione