如何在字典中使用键“值”添加所有值?

时间:2019-08-02 09:04:01

标签: python json list dictionary

我有一个这样的字典:

{
    'first':{'value': 2, 'blah': 'ants'}, 
    'second':{'value': 5, 'blah': 'birds'}, 
    'third':{'value': 8, 'blah': 'cats'},
    'fourth':{'value': 10, 'blah': 'cats'}
}

我希望输出为25,即(2 + 5 + 8 + 10)

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用sum()doc)内置函数并遍历字典值:

d = {
    'first':{'value': 2, 'blah': 'ants'},
    'second':{'value': 5, 'blah': 'birds'},
    'third':{'value': 8, 'blah': 'cats'},
    'fourth':{'value': 10, 'blah': 'cats'}
}

print(sum(v['value'] for v in d.values()))

OR(感谢Gabor),如果键'value'不存在以获取默认值0

print(sum(v.get('value', 0) for v in d.values()))

打印:

25

答案 1 :(得分:0)

您可以使用以下一项进行计算,

cc={
'first':{'value': 2, 'blah': 'ants'},
'second':{'value': 5, 'blah': 'birds'},
'third':{'value': 8, 'blah': 'cats'},
'fourth':{'value': 10, 'blah': 'cats'}

}

dictionary = {}
counter = 0
sum = 0
for i in cc:
    dictionary[i] = counter
    datavalue = list(cc.values())[counter].values()[1]
    counter += 1
    sum += datavalue

print sum