文章详情页
python - 用生成器迭代数据在文件和IDLE中运行结果不一致,
浏览:110日期: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 - weex 项目createInstanceReferenceError: Vue is not defined2. android - 哪位大神知道java后台的api接口的对象传到前端后输入日期报错,是什么情况?求大神指点3. pdo 写入到数据库的内容为中文的时候写入乱码4. PHPExcel表格导入数据库怎么导入5. javascript - 如图,百度首页,查看源代码为什么什么都没有?6. vue2.0+webpack 如何使用bootstrap?7. PHP类封装的插入数据,总是插入不成功,返回false;8. mac连接阿里云docker集群,已经卡了2天了,求问?9. 微信渠道二维码怎么使用?10. javascript - 微信上传图文素材报错
排行榜
