如果 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)
注意:
- 如果解决方案是单线或类似的东西,那就太好了 不要使用 for 循环。
- 我们也不需要检查父是否 字典在删除之前有键,因为子字典 是从父字典派生的。所以不用考虑 键错误。
- 父字典是静态字典,不应受该方法影响。相反,返回的字典应该存储在另一个简化的字典中。
- 无需检查child_dict 是否与parent_dict 具有相同的键。只有关键很重要。
请您参考如下方法:
{k: v for k, v in parent_dict.items() if k not in derived_dict}
