Skip to main content
 首页 » 编程设计

python之从另一个字典python中删除一个字典

2025年05月04日20insus

如果 A 和 B 是两个字典,使用 python,有没有办法从字典 A 中删除字典 B 中的元素?

例如,

parent_dict = {"a" : "aaa", "b" : "bbb", "c" : "ccc", "d" : "ddd", "e": "eee"} 
derived_dict = {"a" : "aaa", "d" : "ddd", "e" : "eee"} 

现在我需要编写一个函数 dict_reduce(dictA, dictB) 从 dictA 中删除 dictB 的所有元素。

(即)dict_reduce(parent_dict, derived_dict) 应该给出 {“b”:“bbb”,“c”:“ccc”

我使用 for 循环的解决方法是:

def dict_reduce(parent_dict, child_dict): 
    for key in child_dict.keys(): 
        del parent_dict[key] 
    return parent_dict 
 
reduced_dict = dict_reduce(parent_dict, child_dict) 

注意:

  1. 如果解决方案是单线或类似的东西,那就太好了 不要使用 for 循环。
  2. 我们也不需要检查父是否 字典在删除之前有键,因为子字典 是从父字典派生的。所以不用考虑 键错误。
  3. 父字典是静态字典,不应受该方法影响。相反,返回的字典应该存储在另一个简化的字典中。
  4. 无需检查child_dict 是否与parent_dict 具有相同的键。只有关键很重要。

请您参考如下方法:

{k: v for k, v in parent_dict.items() if k not in derived_dict}