эй, у меня тоже была такая же проблема, но я решил проблему, и я опубликую ее здесь, в случае, если она также будет полезна для других, в основном объединяя вложенные словари и добавляя значения, для меня мне нужно было вычислить некоторыевероятности, так что этот работал отлично:
#used to copy a nested dict to a nested dict
def deepupdate(target, src):
for k, v in src.items():
if k in target:
for k2, v2 in src[k].items():
if k2 in target[k]:
target[k][k2]+=v2
else:
target[k][k2] = v2
else:
target[k] = copy.deepcopy(v)
, используя вышеуказанный метод, мы можем объединить:
target = {'6,6': {'6,63': 1},'63, 4 ': {' 4,4 ': 1},' 4,4 ': {' 4,3 ': 1},' 6,63 ': {'63, 4': 1}}
src = {'5,4': {'4,4': 1}, '5,5': {'5,4': 1}, '4,4': {'4,3': 1}}
и это станет: {' 5,5 ': {' 5,4 ': 1},' 5,4 ': {' 4,4 ': 1},'6,6 ': {' 6,63 ': 1}, '63, 4': {'4,4': 1}, '4,4': {'4,3': 2}, '6,63 ': {'63, 4': 1}}
также обратите внимание на изменения здесь:
target = {'6,6': {'6,63': 1},'6,63': {'63, 4 ': 1}, ' 4,4 ': {' 4,3 ': 1} , '63, 4': {'4,4': 1}}
src = {'5,4': {'4,4': 1}, '4,3': {'3,4': 1}, '4, 4 ': {' 4,9 ': 1} ,' 3,4 ': {' 4,4 ': 1},' 5,5 ': {' 5,4 ': 1}}
merge = {'5,4': {'4,4': 1}, '4,3': {'3,4':1}, '6,63': {'63, 4 ': 1},' 5,5 ': {' 5,4 ': 1},' 6,6 ': {' 6,63 ': 1}, '3,4': {'4,4': 1}, '63, 4 ': {' 4,4 ': 1}, ' 4,4 ': {' 4,3 ': 1, '4,9': 1} }
не забудьте также добавить импорт для копирования:
import copy