A Saturday 01 May 2010 10:39:19 Arnau Sanchez escrigué: > 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.
Sí señor, la memoria es un bien escaso, que conviene conservar. Y cada vez más, debido al abismo que se abre entre acceso a memoria y velocidad de CPU, espacio ganado se traduce en tiempo reducido. -- Francesc Alted _______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
