码迷,mamicode.com
首页 > 编程语言 > 详细

python-遇到dictionary changed size during iteration

时间:2018-08-02 22:58:19      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:两种方法   tde   没有   during   hang   continue   解决办法   div   code   

 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

标签:两种方法   tde   没有   during   hang   continue   解决办法   div   code   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!