假设python dict:
mydict = {'a': 100, 'b': 200, 'c': 300}
我知道其中一个值:
value = 200
如何从dict中删除'b': 200
对?我需要这个:
mydict = {'a': 100, 'c': 300}
答案 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]