4 回答
TA贡献1786条经验 获得超12个赞
修改原始字典:
for k,v in your_dict.items():
if v == 'DNC':
del your_dict[k]
或使用dict理解来创建新的dict:
your_dict = {k:v for k,v in your_dict.items() if v != 'DNC'}
从文档上iteritems(),iterkeys()和itervalues():
使用iteritems(),iterkeys()或itervalues()同时添加或删除字典中的条目可能会产生一种RuntimeError或无法遍历所有条目。
同样适用于普通for key in dict:循环。
在Python 3这是适用于 dict.keys(),dict.values()和dict.items()。
TA贡献1836条经验 获得超5个赞
您只需要确保在迭代字典时没有修改字典,否则您会得到RuntimeError: dictionary changed size during iteration。
所以,你需要遍历键,值的副本(对于d使用d.items()在2.x或list(d.items())在3.X)
>>> d = {'NameofEntry1': '0', 'NameofEntry2': 'DNC'}
>>> for k,v in d.items():
... if v == 'DNC':
... del d[k]
...
>>> d
{'NameofEntry1': '0'}
添加回答
举报