如何将字典中的所有值加起来?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (53)

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

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

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

提问于
用户回答回答于

如你所料:

sum(d.values())

在Python<3中,你可能希望使用itervalues相反(它不构建临时列表)。

用户回答回答于

在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))

扫码关注云+社区