私はリスト内包表記で遊んでいて、別のサイトでこの小さなスニペットに出くわしました:
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秒かかります。
どちらも同じ結果になりますが、1つはかなり遅くなります。ここで何が起こっているのですか?
編集:奇妙なことに... repr()
は、よりも少し遅い結果を与え`num`
ます。2.99秒vs 2.43秒。Python 2.6を使用します(3.0はまだ試していません)。