Python字典循环删除元素时报错:
RuntimeError: dictionary changed size during iteration
假设有一个字典,它的每一个键所对应值都是一个列表,如下:
dict={'A':[a,b,c],'B':[1,2.3],'C':[7,8,9,10,11]}
此时要求删除dict中元素个数小于4个的列表(值),预期结果如下:
dict={'C':[7,8,9,10,11]}
如果使用:
for key in dict:
if len(dict[key])<10:
del dict[key]
会报错:
RuntimeError: dictionary changed size during iteration
解决方法:将字典转换为列表
for key in list(dict):
if len(dict[key])<4:
del dict[key]