Я пограюсь із розумінням списку, і я натрапив на цей маленький фрагмент на іншому сайті:
return ''.join([`num` for num in xrange(loop_count)])
Я витратив кілька хвилин, намагаючись відтворити функцію (набравши текст), перш ніж зрозумів, що `num`
біт її порушує.
Що робить укладання твердження в ці символи? З того, що я бачу, це еквівалент str (num). Але коли я визначив час:
return ''.join([str(num) for num in xrange(10000000)])
Це займає 4,09 с, тоді як:
return ''.join([`num` for num in xrange(10000000)])
займає 2,43 с.
Обидва дають однакові результати, але один набагато повільніше. Що тут відбувається?
EDIT: Як не дивно ... repr()
дає трохи повільніші результати, ніж `num`
. 2.99 с проти 2.43 с. Використання Python 2.6 (ще не пробував 3.0).