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

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

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


当前回答

你可以考虑使用for loop:

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

总数= 800

其他回答

总和(d.值())

"d" ->你的字典变量

d = {'key1': 1,'key2': 14,'key3': 47}
sum1 = sum(d[item] for item in d)
print(sum1)

你可以使用for循环来实现

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

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

如你所料:

sum(d.values())

在Python 2中,你可以通过使用itervalues()字典方法来避免对所有值进行临时复制,该方法返回字典键的迭代器:

sum(d.itervalues())

在Python 3中,您可以只使用d.values(),因为该方法已被更改(并且itervalues()已被删除,因为不再需要它)。

为了更容易编写与版本无关的代码,它总是迭代字典的键值,一个实用函数可能会很有帮助:

import sys

def itervalues(d):
    return iter(getattr(d, ('itervalues', 'values')[sys.version_info[0]>2])())

sum(itervalues(d))

这就是本杰明·彼得森的六个模块所做的。