我有一个school
字典如下 -
{
ID('6a15ce'): {
'count': 5,
'amount': 0,
'r_amount': None,
'sub': < subobj >
}, ID('464ba1'): {
'count': 2,
'amount': 120,
'r_amount': None,
'sub': < subobj2 >
}
}
我想找出amount
的总和,按照以下步骤进行操作
{k:sum(v['amount']) for k,v in school.items()}
但是我在这里得到错误TypeError: 'int' object is not iterable
这可能是有效的方法。
答案 0 :(得分:3)
你可以这样做:
result = sum(v["amount"] for v in school.values())
答案 1 :(得分:0)
您也可以使用map
功能执行此操作:
result = sum(map(lambda i: i['amount'], school.values()))
print(result)
输出:
120
答案 2 :(得分:0)
这是一个功能性解决方案:
from operator import itemgetter
res = sum(map(itemgetter('amount'), school.values()))
答案 3 :(得分:-2)
sum(map(lambda schoolAmount: schoolAmount.amount, school))