我正在玩列表推导,我在另一个网站上看到了这个小片段:
return ''.join([`num` for num in xrange(loop_count)])
Run Code Online (Sandbox Code Playgroud)
我花了几分钟试图复制这个函数(通过输入),然后才意识到`num`它正在破坏它.
在这些字符中包含语句的内容是什么?从我所看到的它相当于str(num).但是当我计时:
return ''.join([str(num) for num in xrange(10000000)])
Run Code Online (Sandbox Code Playgroud)
它需要4.09s而:
return ''.join([`num` for num in xrange(10000000)])
Run Code Online (Sandbox Code Playgroud)
需要2.43秒.
两者都给出了相同的结果,但其中一个慢得多.这里发生了什么?
编辑:奇怪... repr()给出稍微慢一点的结果`num`.2.99s vs 2.43s.使用Python 2.6(尚未尝试过3.0).