You must accumulate results in a dictionary. You must use the values โโ"a" and "b" to form the key of this dictionary
Here I used defaultdict to accumulate entries
l1 = [{'a': 1, 'b': 2, 'c': 3, 'd': 4}, {'a': 5, 'b': 6, 'c': 7, 'd': 8}] l2 = [{'a': 5, 'b': 6, 'e': 100}, {'a': 1, 'b': 2, 'e': 101}] from collections import defaultdict D = defaultdict(dict) for lst in l1, l2: for item in lst: key = item['a'], item['b'] D[key].update(item) l3 = D.values() print l3
output:
[{'a': 1, 'c': 3, 'b': 2, 'e': 101, 'd': 4}, {'a': 5, 'c': 7, 'b': 6, 'e': 100, 'd': 8}]
source share