文章详情页
python - 用生成器迭代数据在文件和IDLE中运行结果不一致,
浏览:161日期: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. 如何解决docker宿主机无法访问容器中的服务?2. java - xml 传输数据如何处理更好3. javascript - h5上的手机号默认没有识别4. python - 类 对象 函数后面的参数问题,勉强看懂但是要自己写出来就感觉很困难5. javascript - 想让图片上那个块,在增加块的宽度的时候向右边移动,而不是向左边移动。需要怎么解决?6. mysql - 要取出数据库中按某字段排序后的前10,20,30条数据要怎么做?7. 网页爬虫 - Python爬虫入门知识8. 求大神帮我看看是哪里写错了 感谢细心解答9. Python Selenium WebDriver如何刷新当前页面10. 用tp5框架写sql语句
排行榜

网公网安备