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
第二种经过测试并没有解决问题,警告依然存在,
解决办法是不对它进行删除,对不删除的数据重新赋值给一个新的字典.
原文地址:https://www.cnblogs.com/leo-tail-x/p/9409461.html
时间: 2024-11-05 15:51:22