Я играю с пониманием списков и наткнулся на этот небольшой фрагмент на другом сайте:
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 с.
Оба дают одинаковые результаты, но один работает намного медленнее. Что здесь происходит?
РЕДАКТИРОВАТЬ: Как ни странно ... repr()
дает немного более медленные результаты, чем `num`
. 2,99 с против 2,43 с. Использование Python 2.6 (еще не пробовал 3.0).