while的代码test1.py:
i = 0 while i < 10000000: i += 1for-loop的代码test2.py:
for n in range(0,10000000): passtime 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
---来自腾讯云社区的---生信编程日常
微信扫一扫打赏
支付宝扫一扫打赏