我正在使用for循环浏览列表,例如:
for c in classes:
print(c.get(‘class’), c.get(‘money’,{})[0].get(‘totalspent’))
我得到结果:
classs1 10
class2 20
class3 10
class2 30
class3 20
我正在设法找到一种获得类似东西的方法:
class1 10
class2 50
class3 30
我该怎么做?我尝试制作字典并将所有内容放入for循环下,但始终会出错。
答案 0 :(得分:3)
使用defaultdict
:
from collections import defaultdict
output = defaultdict(int)
for c in classes:
output[c.get('class')] += c.get('money', {})[0].get('totalspent', 0)
# ^ Note the 0 as default
print(output)
output
将是一个字典,其中的键是类的名称,值是总数。