前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么在python中for-range比while运行的要快

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

作者头像
生信编程日常
发布2020-04-01 16:34:12
9960
发布2020-04-01 16:34:12
举报
文章被收录于专栏:生物信息学、python、R、linux

while的代码test1.py:

代码语言:javascript
复制
i = 0
while i < 10000000:
  i += 1

for-loop的代码test2.py:

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档