私はリスト内包表記をいじっていて、別のサイトでこの小さなスニペットに出くわしました:
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 はまだ試していません)。