如何总结字典中的所有值?

比方说,我有一个字典,其中的键映射到整数,如:

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

在这种情况下,是否有句法简约的方式来返回d -ie 62中的值的总和?

如你所料:

 sum(d.values()) 

在Python <3中,您可能需要使用itervalues (不build立临时列表)。

在Python 2中,您可以避免使用itervalues()字典方法来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)) 

这本质上是本杰明·彼得森的six模块所做的。

当然有。 这是一个总结字典值的方法。

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