删除具有特定值的字典键

我知道字典并不是要用这种方式,因此没有内置函数可以帮助您做到这一点,但是我需要删除字典中具有特定值的每个条目。


所以如果我的字典看起来像:


'NameofEntry1': '0'

'NameofEntry2': 'DNC'

 ...

我需要删除(可能弹出)所有具有值DNC的条目,字典中有多个条目。


慕桂英546537
浏览 262回答 4
4回答

开满天机

修改原始字典: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()。

一只甜甜圈

您只需要确保在迭代字典时没有修改字典,否则您会得到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'}

四季花海

这应该工作:for key, value in dic.items():     if value == 'DNC':         dic.pop(key)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python