Сортировка списка из кортежей в python
У меня есть два списка - номер элемента и его значение:
a = [(0,10.8),(1,8.2),(2,0.3)]
b = [(0,0.4),(3,20.2),(2,0.3)]
Списки имеют разный набор элементов. Я хочу просуммировать значение одинаковых элементов и отсортировать их. Я написал код, но он очень корявый. Можете помочь его сократить?
INPUT:
c = []
d = []
for i in a:
for j in b:
if i[0] == j [0]:
c.append((i[0], i[1]+j[1]))
d.append(i[0])
for i in a:
if i[0] not in d:
c.append(i)
for i in b:
if i[0] not in d:
c.append(i)
sorted(c, key=lambda x: x[1], reverse=True)
OUTPUT:
[(3, 20.2), (0, 11.200000000000001), (1, 8.2), (2, 0.6)]