Estou brincando com as compreensões de listas e encontrei este pequeno trecho em outro site:
return ''.join([`num` for num in xrange(loop_count)])
Passei alguns minutos tentando replicar a função (digitando) antes de perceber que o `num`
bit a estava quebrando.
O que incluir uma declaração nesses caracteres? Pelo que posso ver, é o equivalente a str (num). Mas quando eu cronometrei:
return ''.join([str(num) for num in xrange(10000000)])
Leva 4,09s, enquanto:
return ''.join([`num` for num in xrange(10000000)])
leva 2,43s.
Ambos fornecem resultados idênticos, mas um é muito mais lento. O que está acontecendo aqui?
EDIT: Estranhamente ... repr()
dá resultados ligeiramente mais lentos do que `num`
. 2,99s vs 2,43s. Usando Python 2.6 (não tentei 3.0 ainda).