Estoy jugando con listas por comprensión y encontré este pequeño fragmento en otro sitio:
return ''.join([`num` for num in xrange(loop_count)])
Pasé unos minutos tratando de replicar la función (escribiendo) antes de darme cuenta de que la `num`
broca la estaba rompiendo.
¿Qué hace incluir una declaración en esos caracteres? Por lo que puedo ver, es el equivalente de str (num). Pero cuando lo cronometré:
return ''.join([str(num) for num in xrange(10000000)])
Tarda 4.09s mientras que:
return ''.join([`num` for num in xrange(10000000)])
tarda 2,43 s.
Ambos dan resultados idénticos, pero uno es mucho más lento. ¿Que esta pasando aqui?
EDITAR: Curiosamente ... repr()
da resultados ligeramente más lentos que `num`
. 2.99 vs 2.43s. Usando Python 2.6 (aún no he probado 3.0).