Здравствуйте!
Есть два списка словарей:
a = [{'code': 'a1', 'total1': 7}, {'code': 'a2', 'total1': 17}]
b = [{'code': 'a1', 'total2': 55}, {'code': 'a3', 'total2': 22}]
Как на выходе получить:
1)
l = [{'code': 'a1', 'total1': 7, 'total2': 55},
{'code': 'a2', 'total1': 17},
{'code': 'a3', 'total2': 22}]
2)
l = [{'code': 'a1', 'total1': 7, 'total2': 55},
{'code': 'a2', 'total1': 17, 'total2': 0},
{'code': 'a3', 'total2': 22, 'total1':0}]
Пробовал такие варианты:
l = list()
for i, j in zip(a, b): # Проходим по элементам списков
i.update(j) # Записываем всё в один словарь
l.append(i)
и
l = [dict(i, **j) for i, j in zip(a, b)]
Но результатом был список
[{'code': 'a1', 'total1': 7, 'total2': 55}, {'code': 'a3', 'total1': 17, 'total2': 22}]
Желательно, сделать так, чтобы функция не была слишком медлительной.
Спасибо