Skip to main content
 首页 » 编程设计

python之从字典中的值列表中删除值

2025年05月04日8sky-heaven

我在 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']

请您参考如下方法:

试试这个,

for k, v in t_dict.items(): 
    for item in values_to_remove.get(k, ()): 
        v.remove(item)  
 
# Output 
{'a': ['foo', 'bar'], 'c': ['zoo', 'foo', 'yum'], 'b': ['tee']}