Предположим, у меня есть два списка диктов:
dict_list1 = [{'id': 'id1', 'sub_id': 'sub_id1', 'key1': 'value1'},
{'id': 'id2', 'sub_id': 'sub_id2', 'key3': 'value3'}]
dict_list2 = [{'id': 'id1', 'sub_id': 'sub_id1', 'key2': 'value2'},
{'id': 'id2', 'sub_id': 'sub_id2', 'key4': 'value4'}]
Я хочу объединить их так, чтобы словари с одинаковыми 'id'
и 'sub_id'
сливались, становясь так:
final_list=[{'id': 'id1', 'sub_id': 'sub_id1', 'key1': 'value1', 'key2': 'value2'},
{'id': 'id2', 'sub_id': 'sub_id2', 'key3': 'value3', 'key4': 'value4'}]
Прямо сейчас я делаю так:
final_list = []
for dict1 in dict_list1:
for dict2 in dict_list2:
if attrs['id'] == seats['id'] and \
attrs['sub_id'] == seats['sub_id']:
final_list.append({**dict1, **dict2})
break
Но это выглядит очень плохо. Есть ли лучший / более быстрый способ сделать это?