If A and B are two dictionaries, using python, is there any way of removing elements from Dictionary A that are in dictionary B?
For example,
parent_dict = {"a" : "aaa", "b" : "bbb", "c" : "ccc", "d" : "ddd", "e": "eee"}
derived_dict = {"a" : "aaa", "d" : "ddd", "e" : "eee"}
Now I need to write a function dict_reduce(dictA, dictB) which deletes all the elements of dictB from dictA.
(i.e.,) dict_reduce(parent_dict, derived_dict) should give
{“b” : “bbb”, “c” : “ccc”}
My work around with a for loop is:
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)
NOTE:
- It will be great if the solution is a one liner or something which
do not takes a for loop. - Also we need not to check whether parent
dictionary has the key before deleting, since the child dictionary
is derived from the parent dictionary. So need not think about
keyError. - The parent dictionary is a static dictionary which should not be affected by the method. Instead the returning dictionary should be stored in another reduced dictionary.
- There is no need to check whether the child_dict has same key as that of parent_dict. Only the key matters.
1 Answer