python遍历删除字典里值为空的元素报错
exam = { 'math': '95', 'eng': '96', 'chn': '90', 'phy': '', 'chem': '' }
使用下列遍历的方法删除:
for e in exam: if exam[e] == '': del exam[e]
结果出现下列错误,怎么解决:
Traceback (most recent call last): File "Untitled.py", line 3, in <module> for e in exam: RuntimeError: dictionary changed size during iteration
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用的是迭代器,它等于:
只是在for循环中,它会自动调用next方法!
字典的迭代器会遍历它的键,在这个过程中,不能改变这个字典!exam.keys()返回的是一个独立的列表。
下面是来自PEP234的snapshot:
在使用迭代器遍历的过程中不能删除、添加数据
先记录要删除的元素的索引,遍历完后再删除