ねえ、私も同じ問題を抱えていましたが、解決策を思いついたので、他の人にも役立つ場合に備えて、基本的にネストされた辞書をマージし、値を追加して、ここに投稿します。いくつかの確率を計算する必要があったので、これ1つはうまくいきました:
#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)
上記の方法を使用して、マージできます。
ターゲット = {'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 }}
ここでも変更に注意してください。
ターゲット = {'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}}
マージ = {'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