python字典中特定键值的总和

时间:2018-03-09 20:46:25

标签: python dictionary

我有一个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这可能是有效的方法。

4 个答案:

答案 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))