字典在迭代期间改变了大小

时间:2015-01-31 23:14:15

标签: python

如何解决以下错误?

for item in data:
    if data[item] is None:
        del data[item]

RuntimeError: dictionary changed size during iteration

它实际上似乎并没有影响我的操作,所以我想知道是否应该忽略这个错误?

2 个答案:

答案 0 :(得分:-1)

您必须将更改字典移动到另一个变量:

changing_data = data
for item in data:
  if changing_data[item] is None:
    del changing_data[item]
data = changing_data

答案 1 :(得分:-1)

这似乎需要将要从字典重复的项目更改为字典的键:

for key in data.keys():
    if data[key] is None:
        del data[key]

现在它不会抱怨在迭代过程中迭代一个已改变大小的项目。