I have 2 python list of dictionaries:
[{'index':'1','color':'red'},{'index':'2','color':'blue'},{'index':'3','color':'green'}
]
and
[{'device':'1','name':'x'},{'device':'2','name':'y'},{'device':'3','name':'z'}
]
How can I append each dictionary from the second list to the first list so as to get an output as:
[{'device':'1','name':'x','index': '1', 'color': 'red'},{'device':'1','name':'x','index': '2', 'color': 'blue'},{'device':'1','name': 'x','index': '3', 'color': 'green'}{'device':'2','name':'y''index': '1', 'color': 'red'},{'device':'2','name':'y','index': '2', 'color': 'blue'},{'device':'2','name':'y','index': '3', 'color': 'green'}{'device':'3','name':'z','index': '1', 'color': 'red'}, {'device':'3','name':'z','index': '2', 'color': 'blue'}, {'device':'3','name':'z','index': '3', 'color': 'green'}
]
If you want only print the resulting dictionaries, uncomment the print statement (and comment the following 2).
d1 = [{'index':'1','color':'red'},{'index':'2','color':'blue'},{'index':'3','color':'green'}
]d2 = [{'device':'1','name':'x'},{'device':'2','name':'y'},{'device':'3','name':'z'}
]result_list = []
for dict1 in d1:merged_dict = dict1.copy()for dict2 in d2:merged_dict.update(dict2)
# print(merged_dict)result_list.append(merged_dict.copy())print(result_list)
The result:
[{'name': 'x', 'device': '1', 'color': 'red', 'index': '1'},
{'name': 'y', 'device': '2', 'color': 'red', 'index': '1'},
{'name': 'z', 'device': '3', 'color': 'red', 'index': '1'},
{'name': 'x', 'device': '1', 'color': 'blue', 'index': '2'},
{'name': 'y', 'device': '2', 'color': 'blue', 'index': '2'},
{'name': 'z', 'device': '3', 'color': 'blue', 'index': '2'},
{'name': 'x', 'device': '1', 'color': 'green', 'index': '3'},
{'name': 'y', 'device': '2', 'color': 'green', 'index': '3'},
{'name': 'z', 'device': '3', 'color': 'green', 'index': '3'}]