Ce n'backticks moyenne de l'interpréteur python: `num`

Je suis en train de jouer autour avec des interprétations de la liste et je suis tombé sur ce petit extrait de code 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 la `num` peu cassât.

Ce n'joignant une déclaration dans ces personnages n'? De 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)])

Il faut 4.09 s tandis 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. Ce qui se passe ici?

EDIT: Bizarrement... repr() donne un peu plus lent, les résultats que `num`. 2.99 s vs 2.43 s. À l'aide de Python 2.6 (n'ai pas essayé encore 3.0).

  • Après la lecture de la "un autre du site" dans le skymind.com/~ocrow/python_string, j'ai eu une question similaire, et trouvé cette page. Bonne question et la réponse belle 🙂