python-遇到dictionary changed size during iteration

 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

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

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

posted @ 2018-08-02 19:55  狮子座的尾巴  阅读(2280)  评论(0编辑  收藏  举报