История изменений
Исправление Sahas, (текущая версия) :
Как выше написали, надо взять set(x.keys()+y.keys()), пройти по нему, далее for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) и потом что-то типа res = x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0)
Res = { k : { k2 : x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0) for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) } for k in set(x.keys()+y.keys()) }
Исправление Sahas, :
Как выше написали, надо взять set(x.keys()+y.keys()), пройти по нему, далее for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) и потом что-то типа res = x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0)
Res = { k : {k2 : x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0) for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) } for k in set(x.keys()+y.keys()) }
Исправление Sahas, :
Как выше написали, надо взять set(x.keys()+y.keys()), пройти по нему, далее for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) и потом что-то типа res = x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0)
Res= { k : {k2 : x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0) for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) } for k in set(x.keys()+y.keys()) }
Исправление Sahas, :
Как выше написали, надо взять set(x.keys()+y.keys()), пройти по нему, далее for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) и потом что-то типа res = x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0)
Res= { k : {k2 : x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0) for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) } for k in set(x.keys()+y.keys()) }
Исправление Sahas, :
Писал с телефона и неправильно :)
Как выше написали, надо взять set(x.keys()+y.keys()), пройти по нему, далее for k2 in set(x.get(k, {}).keys() + y.get(k, {}).keys()) и потом что-то типа res = x.get(k, {}).get(k2, 0) + y.get(k, {}).get(k2, 0)
Исправление Sahas, :
Res = {}
for kx in x:
if kx in y:
Res[kx] = {}
for kx2 in x[kx]:
if kx2 in y[kx]:
Res[kx][kx2] = x[kx][kx2] + y[kx][kx2]
else:
Res[kx][kx2] = x[kx][kx2]
else:
Res[kx] = x[kx]
Наверняка можно и элегантнее, тут алгоритм «в лоб» :)
Исходная версия Sahas, :
Res = {}
for kx in x:
if kx in y:
Res[kx] = {}
for kx2 in x[kx]:
if kx2 in y[kx]:
Res[kx][kx2] = x[kx][kx2] + y[kx][kx2]
else:
Res[kx][kx2] = x[kx][kx2]
else:
Res[kx] = x[kx]