假设我有一个字典,其中键映射到像这样的整数:

d = {'key1': 1,'key2': 14,'key3': 47}

是否有一种语法上最简单的方法来返回d中值的和,即。62个吗?


当前回答

Phihag的答案(以及类似的答案)在python3中不能工作。

对于python 3:

d = {'key1': 1,'key2': 14,'key3': 47}
sum(list(d.values()))

更新! 有人抱怨它不管用!我只是从我的终端附上了一个截图。可能是版本不匹配等。

其他回答

你可以考虑使用for loop:

  d = {'data': 100, 'data2': 200, 'data3': 500}
  total = 0
  for i in d.values():
        total += i

总数= 800

如你所料:

sum(d.values())

简单/荒谬的解决方案:

https://trinket.io/python/a8a1f25353

d = {'key1': 1,'key2': 14,'key3': 47}
s = 0
for k in d:
    s += d[k]

print(s)

或者如果你想让它更花哨:

https://trinket.io/python/5fcd379536

import functools

d = {'key1': 1,'key2': 14,'key3': 47}
s = functools.reduce(lambda acc,k: acc+d[k], d, 0)

print(s)

当然有。这里有一种对字典的值求和的方法。

>>> d = {'key1':1,'key2':14,'key3':47}
>>> sum(d.values())
62

总和(d.值())

"d" ->你的字典变量