当前位置:首页 > Python教程 > python技巧

python-遇到dictionary changed size during iteration

             1 c=0
 2 f={}
 3 jiao={脚本一:122000,脚本二:189999,
 4脚本三:99999,脚本4:25000000,jiaoben:126}
 5for i in jiao.values():
 6     c=c+i
 7 average=c/len(jiao)
 8for li in jiao.keys():
 9if jiao[li]>average:
10del jiao[li]
11# f.setdefault(li,jiao[li])12print(average)
13print(li)

此时运行出现一下错误:

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

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

             2.一下为网上拷贝

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

        del result[key]

        continue

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

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

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


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!