关于python:如何删除已知值的字典键?

How to remove dictionary key with known value?

假设python dict:

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

我知道其中一个价值观:

1
value = 200

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

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


使用一dictionary comprehension。注(AA,除非有jonrsharpe),这将创建一个新的词典,这是关键excludes价值:对,你想消除。如果你想删除它从您的原始字典然后请看他的答案。

1
2
3
4
5
6
>>> 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
3
4
for key, val in list(mydict.items()):
    if val == value:
        del mydict[key]
        break # unless you want to remove multiple occurences


我发现在《simplest:

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


你会需要在两个环的每一个项目的(),它与字典的理解:

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

修饰或在现有词典:

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