Sto giocando con la comprensione degli elenchi e mi sono imbattuto in questo piccolo frammento su un altro sito:
return ''.join([`num` for num in xrange(loop_count)])
Ho passato alcuni minuti a provare a replicare la funzione (digitando) prima di rendermi conto che il `num`
bit la stava interrompendo.
Cosa fa racchiudere una dichiarazione in quei caratteri? Da quello che posso vedere è l'equivalente di str (num). Ma quando l'ho cronometrato:
return ''.join([str(num) for num in xrange(10000000)])
Ci vogliono 4.09s mentre:
return ''.join([`num` for num in xrange(10000000)])
impiega 2,43 secondi.
Entrambi danno risultati identici ma uno è molto più lento. Che cosa sta succedendo qui?
EDIT: Stranamente ... repr()
dà risultati leggermente più lenti di `num`
. 2,99 contro 2,43. Utilizzo di Python 2.6 (non ho ancora provato 3.0).