For example I have two dictionaries d1 and d2
d1 = {'a': ['b','c'], 'd': ['e', 'f']}
d2 = {'b':[1, 2], 'c': [3, 4], 'd': [5, 6], 'e': [7, 8], 'f': [9, 10]}
I expect a new dictionary d3 that looks like
d3 = {'a':{'b':[1, 2], 'c': [3, 4]}, 'd': {'e': [7, 8], 'f': [9, 10]}}
I have tried all kinds of looping but it does not work.
CodePudding user response:
You can use dict comprehension -
d1 = {'a': ['b','c'], 'd': ['e', 'f']}
d2 = {'b':[1, 2], 'c': [3, 4], 'd': [5, 6], 'e': [7, 8], 'f': [9, 10]}
d3 = {k1:{v:d2[v] for v in v1} for k1, v1 in d1.items()}
print(d3)
Output:
{'a': {'b': [1, 2], 'c': [3, 4]}, 'd': {'e': [7, 8], 'f': [9, 10]}}
Here, for every key(k1) in d1, we are creating an entry in d3 and the corresponding value is another dict, where key is values from first dict and corresponding value in d2 for the key.
