美文网首页Python中文社区
为什么在python中for-range比while运行的要快

为什么在python中for-range比while运行的要快

作者: 生信编程日常 | 来源:发表于2020-03-26 21:28 被阅读0次

while的代码test1.py:

i = 0
while i < 10000000:
  i += 1

for-loop的代码test2.py:

for n in range(0,10000000):
  pass

time python test1.py 或者test2.py,得到第一个的时间大概是0m1.189s;第二个的时间是0m0.514s。while循环的时间大概是for-range的两倍。

其实如果对python字节码的反汇编可以看到两者所做的操作数量是不一样的,while要多于for-loop。另外,range()作为内置方法,是作为C代码执行的,而 i +=1需要解释,在效率和速度之间是差很多的。而且i += 1相当于创建了新对象,相对而言也会更慢。

参考:https://stackoverflow.com/questions/869229/why-is-looping-over-range-in-python-faster-than-using-a-while-loop

相关文章

网友评论

    本文标题:为什么在python中for-range比while运行的要快

    本文链接:https://www.haomeiwen.com/subject/mbyhuhtx.html