我有一个这样的字典:
{
'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)
我该怎么做?
答案 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