【发布时间】:2016-05-12 05:45:56
【问题描述】:
我在 Windows 7 中使用 Python 2.7。
我有一本字典,想从另一个字典中删除对应于(键、值)对的值。
例如,我有一本字典t_dict。我想删除字典 values_to_remove 中对应的(键、值)对,这样我就得到了字典 final_dict
t_dict = {
'a': ['zoo', 'foo', 'bar'],
'c': ['zoo', 'foo', 'yum'],
'b': ['tee', 'dol', 'bar']
}
values_to_remove = {
'a': ['zoo'],
'b': ['dol', 'bar']
}
# remove values here
print final_dict
{
'a': ['foo', 'bar'],
'c': ['zoo', 'foo', 'yum'],
'b': ['tee']
}
我查看了关于 SO 和 python 词典文档的类似页面,但找不到任何解决此特定问题的方法:
https://docs.python.org/2/library/stdtypes.html#dict
How to remove dictionaries with duplicate values from a nested dictionary
How to remove a key from a python dictionary?
编辑
每个键的t_dict 中不能有重复值。例如永远不会有
t_dict['a'] = ['zoo','zoo','foo','bar']
【问题讨论】:
-
您没有从字典中删除值。您正在从 list 中删除值。
-
for key, list_ in values_to_remove.items(): for word in list_: t_dict[key].remove(word) -
可以有像 t_dict['a']=['foo','foo'] 和 values_to_remove['a']=['foo'] 这样的重复项吗?
-
@sasha,好问题,不,不可能。我将编辑我的 OP
标签: python python-2.7 dictionary