【问题标题】:How do I add all the values with key "value" in the dict? [duplicate]如何在字典中添加所有带有键“值”的值? [复制]
【发布时间】:2019-08-02 09:04:01
【问题描述】:

我有一个这样的字典:

{
    '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)

我该怎么做?

【问题讨论】:

标签: python json list dictionary


【解决方案1】:

您可以使用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()))

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

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

打印:

25

【讨论】:

  • 我建议使用v.get('value',0) 不会抛出任何异常。
  • @GáborFekete 添加到答案中,谢谢
【解决方案2】:

你可以使用下面的一个来计算,

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

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多