首页 > 编程语言 > 详细

python-遇到dictionary changed size during iteration

时间:2018-08-02 22:33:16      阅读:1218      评论:0      收藏:0      [点我收藏+]
 1 c=0
 2 f={}
 3 jiao={脚本一:122000,脚本二:189999,
 4        脚本三:99999,脚本4:25000000,jiaoben:126}
 5 for i in jiao.values():
 6     c=c+i
 7 average=c/len(jiao)
 8 for li in jiao.keys():
 9     if jiao[li]>average:
10         del jiao[li]
11 # f.setdefault(li,jiao[li])
12 print(average)
13 print(li)

此时运行出现一下错误:

RuntimeError: dictionary changed size during iteration # 字典在迭代的时候改变了字典大小

这个问题在网上找的两种方法:1.是通过转换成列表进行删除;

             2.一下为网上拷贝

for key in result.keys(): # 由 result 变为 result.keys()

    if not result[key]:

        del result[key]

        continue

第二种经过测试并没有解决问题,警告依然存在,

解决办法是不对它进行删除,对不删除的数据重新赋值给一个新的字典.

python-遇到dictionary changed size during iteration

原文:https://www.cnblogs.com/leo-tail-x/p/9409461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!