python dict.add_by_value (dict_2)?

Проблема:

>>> a = dict(a=1,b=2    )
>>> b = dict(    b=3,c=2)

>>> c = ???

c = {'a': 1, 'b': 5, 'c': 2}

Итак, идея состоит в том, чтобы добавить два словаря к значениям типа int / float в кратчайшем виде. Вот одно решение, которое я разработал, но оно мне не нравится, потому что оно длинное:

c = dict([(i,a.get(i,0) + b.get(i,0)) for i in set(a.keys()+b.keys())])

Я думаю, что должно быть более короткое / краткое решение (может быть, что-то делать с редуктором и операторским модулем? Itertools?) ... Есть идеи?

Обновление: я действительно надеюсь найти что-то более элегантное, например, "Reduce (operator.add, key = itemgetter (0), a + b)". (Очевидно, что это не настоящий код, но вы должны понять). Но, похоже, это может быть мечтой.

Обновление: все еще ищем более сжатые решения. Может, групповой может помочь? Решение, которое я придумал, используя "Reduce" / "Groupby", на самом деле не является кратким

from itertools import groupby
from operator import itemgetter,add

c = dict( [(i,reduce(add,map(itemgetter(1), v))) \
              for i,v in groupby(sorted(a.items()+b.items()), itemgetter(0))] )

Ответы на вопрос(8)

Ваш ответ на вопрос