0

私はこのような辞書を持っています:

{1224:{'A': 6, 'B': 4, 'C': 5}, 1225: {'A': 6, 'B': 6, 'C': 5}}

各キーにAの合計を格納して、次のような結果を取得したいと思います。

{1224:{'A': 6, 'B': 4, 'C': 5, 'Total_A' : 6}, 1225: {'A': 6, 'B': 6, 'C': 5, 'Total_A' : 12}}

Total_Aは、最初のキー(1224)のA値+次のキー(1225)の値です。

私はこれを試しました:

for d in celldict.values():
    sum = 0
    sum += d.get('A',0)
    d['TOTAL_A'] = sum

ただし、合計はなく、毎回各キーのA値を返すだけです。

4

2 に答える 2

7

ループで何が起こったのかを知っておくべきだと思います。正解は次のとおりです。

sum = 0
for d in celldict.values():
    sum += d.get('A',0)
    d['TOTAL_A'] = sum
于 2012-11-28T11:04:06.543 に答える
4

sum問題は、反復ごとにリセットすることです。sumこれが、以前の値を累積しない理由です。

sum = 0ループの外に移動します。

于 2012-11-28T11:07:13.583 に答える