4 回答

TA貢獻1786條經(jīng)驗 獲得超13個贊
修改原始字典:
for k,v in your_dict.items():
if v == 'DNC':
del your_dict[k]
或使用dict理解來創(chuàng)建新的dict:
your_dict = {k:v for k,v in your_dict.items() if v != 'DNC'}
從文檔上iteritems(),iterkeys()和itervalues():
使用iteritems(),iterkeys()或itervalues()同時添加或刪除字典中的條目可能會產(chǎn)生一種RuntimeError或無法遍歷所有條目。
同樣適用于普通for key in dict:循環(huán)。
在Python 3這是適用于 dict.keys(),dict.values()和dict.items()。

TA貢獻1836條經(jīng)驗 獲得超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'}
添加回答
舉報