文章详情页
python - 用生成器迭代数据在文件和IDLE中运行结果不一致,
浏览:185日期:2022-06-30 18:38:38
问题描述
使用生成器迭代数据构造丢失问题,同样的代码运行结果不一致:
文件方式运行得到结果为:5 2 1 0
Python自带IDLE运行得到结果为:5 3 2 1 0
def countdown(n): while n >= 0:newvalue = (yield n)if newvalue is not None: n = newvalueelse: n -= 1c = countdown(5)for n in c: print(n) if n == 5:c.send(3)

问题解答
回答1:不要对正在遍历的对象进行修改, 那样会导致索引混乱, 无法达到我们想要的结果, 可以通过enumerate查看遍历过程中, 索引的变化
for index, n in enumerate(c): # index 为取到的索引值 print(index, n) if n == 5:c.send(3)
相关文章:
1. android - 环信Easeui导入后启动报错UnsatisfiedLinkError2. javascript - ElementUI tree控件怎么通过子节点去找到父节点?3. linux - python ImportError: No module named ’***’4. javascript - vue.js插件中的全局方法,全局资源和实例方法区别是什么?5. php - msyql4字符6. python - flask blog 添加域名7. python-appium代码运行报错8. 网络传输协议 - 以下三种下载方式有什么不同?如何用python模拟下载器下载?9. python 合并dict10. 为什么浏览器 运行不出来 ?是哪里出了问题呢?
排行榜

网公网安备