boc*_*cco 5 python micro-optimization
我们可以做数字迭代,如:
for i in xrange(10):
print i,
Run Code Online (Sandbox Code Playgroud)
和C风格:
i = 0
while i < 10:
print i,
i = i + 1
Run Code Online (Sandbox Code Playgroud)
是的,我知道,第一个不容易出错,更像pythonic,但它是否足够快作为C风格的版本?
PS.我是来自C++星球,而且是Python上的新星.
J S*_*J S 15
谁在乎?认真.如果您想知道,请使用timeit包(您可以使用-m从命令行调用它).
但这根本不重要,因为差异可以忽略不计.一般而言,如果您想要速度,Python不是您选择的语言.
u0b*_*6ae 15
我确定while版本速度较慢.Python必须在循环的每个回合中查找整数对象的添加操作等,它不是纯粹的C,因为它看起来像它!
如果你想要一个完全如上所述的pythonic版本,请使用:
print " ".join(str(i) for i in xrange(10))
Run Code Online (Sandbox Code Playgroud)
编辑:我的时间看起来像这样.这只是一个没有打印的愚蠢运行循环,只是为了向您展示在Python中写出"i + = 1"等成本.
$ python -mtimeit "i=0" "while i < 1000: i+=1"
1000 loops, best of 3: 303 usec per loop
$ python -mtimeit "for i in xrange(1000): pass"
10000 loops, best of 3: 120 usec per loop
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10925 次 |
| 最近记录: |