История изменений
Исправление Nervous, (текущая версия) :
Так еще можно (третий питон).
xs = [(0,10.8),(1,8.2),(2,0.3)]
ys = [(0,0.4),(3,20.2),(2,0.3)]
# словарь с просуммированными значениями
sum_dict = {x[0]: x[1] + y[1] for x in xs for y in ys if x[0] == y[0]}
# объединяем исходные словари и словарь с просуммированными значениями слева направо
result_dict = {**dict(xs), **dict(ys), **sum_dict}
# готово, вы великолепны! (и не сломали при этом мозг)
result = [(k, v) for k,v in result.items()]
# ах да, сортировка
sorted_result = sorted(result, key=lambda x: x[1], reverse=True)
sorted_result
[(3, 20.2), (0, 11.200000000000001), (1, 8.2), (2, 0.6)]
Исправление Nervous, :
Так еще можно (третий питон).
xs = [(0,10.8),(1,8.2),(2,0.3)]
ys = [(0,0.4),(3,20.2),(2,0.3)]
# словарь с просуммированными значениями
sum_dict = {x[0]: x[1] + y[1] for x in xs for y in ys if x[0] == y[0]}
# объединяем исходные словари и словарь с просуммированными значениями слева направо
result_dict = {**dict(xs), **dict(ys), **sum_dict}
# готово, вы великолепны! (и не сломали при этом мозг)
result = [(k, v) for k,v in result.items()]
result
[(0, 11.200000000000001), (1, 8.2), (2, 0.6), (3, 20.2)]
Исправление Nervous, :
Так еще можно (третий питон).
xs = [(0,10.8),(1,8.2),(2,0.3)]
ys = [(0,0.4),(3,20.2),(2,0.3)]
# словарь с просуммированными значениями
sum_dict = {x[0]: x[1] + y[1] for x in xs for y in ys if x[0] == y[0]}
# объединяем исходные словари и словарь с просуммированными значениями слева направо
result_dict = {**dict(xs), **dict(ys), **sum_dict}
# готово, вы великолепны! (и не сломали при этом мозг)
result = [(k, v) for k,v in result.items()]
result
[(0, 11.200000000000001), (1, 8.2), (2, 0.6), (3, 20.2)]
Исправление Nervous, :
Так еще можно (третий питон).
xs = [(0,10.8),(1,8.2),(2,0.3)]
ys = [(0,0.4),(3,20.2),(2,0.3)]
sum_dict = {x[0]: x[1] + y[1] for x in xs for y in ys if x[0] == y[0]}
result_dict = {**dict(xs), **dict(ys), **sum_dict}
result = [(k, v) for k,v in result.items()]
result
[(0, 11.200000000000001), (1, 8.2), (2, 0.6), (3, 20.2)]
Исходная версия Nervous, :
Так еще можно (третий питон).
xs = [(0,10.8),(1,8.2),(2,0.3)]
ys = [(0,0.4),(3,20.2),(2,0.3)]
sum_dict = {x[0]: x[1] + y[1] for x in xs for y in ys if x[0] == y[0]}
result = {**dict(xs), **dict(ys), **sum_dict}
result_dict = {**dict(xs), **dict(ys), **sum_dict}
result = [(k, v) for k,v in result.items()]
result
[(0, 11.200000000000001), (1, 8.2), (2, 0.6), (3, 20.2)]