Bawię się ze zrozumieniem list i natknąłem się na ten mały fragment na innej stronie:
return ''.join([`num` for num in xrange(loop_count)])
Spędziłem kilka minut próbując odtworzyć funkcję (wpisując), zanim zdałem sobie sprawę, że `num`
bit ją psuje.
Co robi umieszczenie oświadczenia w tych znakach? Z tego, co widzę, jest to odpowiednik str (num). Ale kiedy to ustaliłem:
return ''.join([str(num) for num in xrange(10000000)])
Zajmuje to 4,09s natomiast:
return ''.join([`num` for num in xrange(10000000)])
trwa 2,43s.
Oba dają identyczne wyniki, ale jeden jest znacznie wolniejszy. Co tu się dzieje?
EDYCJA: Dziwne ... repr()
daje nieco wolniejsze wyniki niż `num`
. 2,99s vs 2,43s. Używanie Pythona 2.6 (jeszcze nie wypróbowałem 3.0).