On 01/05/10 00:51, Rolando Espinoza La Fuente wrote:

%timeit dict((k, d[k]) for k in subkeys)
100000 loops, best of 3: 6.99 µs per loop


%timeit dict([(k, d[k]) for k in subkeys])
100000 loops, best of 3: 5.82 µs per loop

Pero esto hay que explicarlo: con pocos elementos una lista por compresión será (normalmente) más rápida, pero si tenemos muchos ya no está tan claro:

d = dict((k, 2*k) for k in xrange(100000))

%timeit dict([(k, d[k]) for k in xrange(0, 100000, 2)])
10 loops, best of 3: 23.9 ms per loop

%timeit dict((k, d[k]) for k in xrange(0, 100000, 2))
100 loops, best of 3: 16.8 ms per loop

En cualquier caso, la principal ventaja de los generadores está en espacio, no en tiempo.
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a