如何删除已知值的字典键?

时间:2014-03-20 11:31:10

标签: python dictionary

假设python dict:

mydict = {'a': 100, 'b': 200, 'c': 300}

我知道其中一个值:

value = 200

如何从dict中删除'b': 200对?我需要这个:

mydict = {'a': 100, 'c': 300}

4 个答案:

答案 0 :(得分:4)

使用dictionary comprehension。请注意(正如jonrsharpe所说),这将创建一个新的字典,它排除要删除的键:值对。如果你想从原始字典中删除它,那么请看他的答案。

>>> d = {'a': 100, 'b': 200, 'c': 300}
>>> val = 200
# Use d.items() for Python 2.x and d.iteritems() for Python 3.x
>>> d2 = {k:v for k,v in d.items() if v != val}
>>> d2
{'a': 100, 'c': 300}

答案 1 :(得分:2)

这听起来像你想要的:

for key, val in list(mydict.items()):
    if val == value:
        del mydict[key]
        break # unless you want to remove multiple occurences

答案 2 :(得分:0)

你需要循环遍历每个项目(),或者使用dict理解:

new_dict = {k:v for k,v in my_dict.items() if predicate(value)}

或修改现有词典:

for k,v in my_dict.items():
    if not predicate(v):
        del my_dict[k]

答案 3 :(得分:0)

最简单的我发现:

for key in [k for k,v in mydict.items() if v==200]:
    del mydict[key]