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

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

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

相关文章:

  • 2022-01-06
  • 2022-12-23
  • 2021-11-10
  • 2021-12-26
  • 2021-12-15
  • 2021-09-23
  • 2021-10-03
  • 2021-10-10
猜你喜欢
  • 2021-05-19
  • 2022-12-23
  • 2021-09-11
  • 2022-01-10
  • 2021-11-16
  • 2022-12-23
  • 2021-10-17
相关资源
相似解决方案