2017-03-15 18 views
1

に私が辞書を持って保存する - 私はすべて同様の数の加算として結果を望んPythonは:同じキーで「n」の辞書の値を追加し、ように、1つの辞書

dict_1 = { 'A' : {'1029' : 3, '1039' : 5}, 'B' : {'1029' : 3, '1039' : 5}, 'C' : {'1008' : 1, '1029' : 3, '1039' : 8, '1050' : 1}, 'D' : {'1008' : 1, '1029' : 10, '1039' : 3}} 

を私はその後、私は、コードの下に使用

list_new = [ {'1029' : 3, '1039' : 5}, {'1029' : 3, '1039' : 5}, {'1008' : 1, '1029' : 3, '1039' : 8, '1050' : 1}, {'1008' : 1, '1029' : 10, '1039' : 3}] 

としてdict_1でリストを作成しました::

for i in range(0, len(list_new)): 
     for j in range(i + 1, len(list_new)): 
      if (i == 0 and j == 1): 
       dict_12 = {k: list_new[0].get(k, 0) + list_new[1].get(k, 0) for k in set(list_new[0]) | set(list_new[1])} 

      else: 
       dict_13 = {k: dict_12.get(k, 0) + list_new[j].get(k, 0) for k in set(dict_12) | set(list_new[j])} 
       dict_12.clear() 
       dict_12.update(dict_13) 

しかし、そのは間違っを与え、私が使用しているすなわち

result = {'1008' : 2, '1029' : 19, '1039' : 21, '1050' : 1} 

アプローチ結果。上記のコードで最後の2行をコメントすると、3回繰り返しても正常に動作します。しかし、私は、コードを 'n'回繰り返し実行する必要があります。

私は前回の結果を保存する必要があります。誰も私のために同じように助けてもらえますか?

ありがとうございます!

答えて

2
sum_dict = {} 
for d in dict_1.values(): 
    for key, val in d.items(): 
     if key in sum_dict: 
      sum_dict[key] += val 
     else: 
      sum_dict[key] = val 

>>> sum_dict 
{'1050': 1, '1039': 21, '1029': 19, '1008': 2} 
関連する問題