Je joue avec les compréhensions de listes et je suis tombé sur ce petit extrait sur un autre site:
return ''.join([`num` for num in xrange(loop_count)])
J'ai passé quelques minutes à essayer de reproduire la fonction (en tapant) avant de réaliser que le `num`
bit la cassait.
Que fait le fait d'inclure une déclaration dans ces caractères? D'après ce que je peux voir, c'est l'équivalent de str (num). Mais quand je l'ai chronométré:
return ''.join([str(num) for num in xrange(10000000)])
Cela prend 4.09s alors que:
return ''.join([`num` for num in xrange(10000000)])
prend 2,43 s.
Les deux donnent des résultats identiques mais l'un est beaucoup plus lent. Qu'est-ce qui se passe ici?
EDIT: Bizarrement ... repr()
donne des résultats légèrement plus lents que `num`
. 2,99 contre 2,43. Utilisation de Python 2.6 (je n'ai pas encore essayé la version 3.0).