Funzioni lambda

A
Alessiorevo (1730 points)
6 6 14
asked Nov 28, 2019 in Programmare in Python by Alessiorevo (1,730 points)
recategorized Dec 6, 2019 by andrea.sterbini
Ciao a tutti, ho sentito che molti usano delle funzioni lambda per velocizzare il programma
Vorrei sapere come si usa una funzione lambda per un for.
Grazie in anticipo
906 views

3 Answers

E
Edward (25950 points)
2 4 172
answered Nov 28, 2019 by Edward (25,950 points)
Personalmente non mi è mai capitato di usarle in un for (non so se ha molto senso usarle in un for, poi dipende cosa intendi).

In genere io le uso insieme a map, filter, eccetera.
Comunque non sono altro che funzioni anonime, potresti scriverle come funzioni vere e proprie, ma in genere se si devono fare calcoli/operazioni brevi si tende ad usare le funzioni lambda.
A
Alessiorevo (1730 points)
6 6 14
commented Nov 28, 2019 by Alessiorevo (1,730 points)
più che altro sto cercando un modo per velocizzare il programma e non perchè non passo 1 test ma proprio per ricevere il bonus del tempo se qualcuno ha qualche consiglio per velocizzarlo anche leggermente sarebbe di grande aiuto
a
a.pietroluongo (11250 points)
15 38 131
answered Nov 28, 2019 by a.pietroluongo (11,250 points)
di solito usi  lambda quando l'operazione da compiere è una sola espressione
Andrea Sanchietti (3100 points)
4 7 40
commented Nov 29, 2019 by Andrea Sanchietti (3,100 points)
ma a quel punto non è più facile scrivere direttamente l'espressione?
AlessandraIzzo (6010 points)
6 6 30
commented Dec 3, 2019 by AlessandraIzzo (6,010 points)
Andrea, si intende che le usi quando comunque ti serve una funzione (ad esempio per passarla a map o filter). Allora anziché creare una funzione apposita (def ...) che contiene solo una semplice espressione, usi una lambda
Antares (7770 points)
5 6 41
answered Dec 3, 2019 by Antares (7,770 points)

Lambda in Python è utilizzato per la creazione di funzioni anonime. Lambda può avere quanti numeri vuoi in ingresso ma ritorna solamente un espressione. 

Ad esempio questa espressione lambda: 

double = lambda x: x * 2 

equivale a:

def double(x):
   return x * 2

Qua trovi una guida molto valida.