Предполагая, что кандидаты на слияние из двух списков являются диктатами из одной и той же позиции, вы можете сжать свои списки вместе, использовать понимание списка и использовать **
-синтаксис идиома *1003* для объединения двух диктов.
>>> dicts1 = [{"a":1, "b":2, "c":1295}, {"a":2, "b":5, "c":6274}, {"a":3, "b":1, "c":5337}]
>>> dicts2 = [{"a":1, "b":2, "d":1884}, {"a":2, "b":5, "d":2049}, {"a":3, "b":3, "d":1086}]
>>>
>>> [{**d1, **d2} for d1, d2 in zip(dicts1, dicts2) if all(d1[k] == d2[k] for k in ('a', 'b'))]
[{'a': 1, 'b': 2, 'c': 1295, 'd': 1884},
{'a': 2, 'b': 5, 'c': 6274, 'd': 2049}]
Бонус pandas
решение:
>>> df1 = pd.DataFrame(dicts1)
>>> df2 = pd.DataFrame(dicts2)
>>>
>>> df1
a b c
0 1 2 1295
1 2 5 6274
2 3 1 5337
>>>
>>> df2
a b d
0 1 2 1884
1 2 5 2049
2 3 3 1086
>>>
>>> pd.merge(df1, df2, on=['a', 'b']).to_dict(orient='records')
[{'a': 1, 'b': 2, 'c': 1295, 'd': 1884},
{'a': 2, 'b': 5, 'c': 6274, 'd': 2049}]