Ciao, 2013/9/17 Piergiuliano Bossi <pgbo...@gmail.com>: > Ad esempio, data una lista di interi, per estrarre quelli piu' grandi di 5: > >>>> a = [2, -4, 27, 44, 13, 0] >>>> filter(lambda x: x > 5, a) > [27, 44, 13] >>>> [x for x in a if x > 5] > [27, 44, 13] >>>> > > Immagino che tu vada diretto con la seconda, mentre a me viene naturale la > prima (la trovo piu' "intention revealing", dice chiaramente che sto > filtrando la lista).
Personalmente avrei optato per la seconda... :-) Però mi incuriosiva sapere quele implementazione è la più veloce/efficiente... In[1]: import random In[2]: a = [random.randint(0,100) for _ in range(100000)] In[3]: %timeit filter(lambda x: x > 5, a) 100 loops, best of 3: 9.14 ms per loop In [4]: %timeit [x for x in a if x > 5] 100 loops, best of 3: 5.77 ms per loop e la seconda sembra essere la "migliore"... per quello che può valere... Pietro _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python