我的字典看起来像这样:
{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是第一个键中的A值(1224)+下一个键中的值(1225)。
我试过了:
for d in celldict.values():
sum = 0
sum += d.get('A',0)
d['TOTAL_A'] = sum
但它没有任何总和,每次只返回每个键的A值。
答案 0 :(得分:7)
我想你应该知道循环中发生了什么。 正确答案如下:
sum = 0
for d in celldict.values():
sum += d.get('A',0)
d['TOTAL_A'] = sum
答案 1 :(得分:4)
问题是,您在每次迭代时重置sum
。这就是sum
永远不会累积先前值的原因。
将sum = 0
移出循环。