如何对字典中的所有值求和?

2024-04-26 06:39:43 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个字典,其中的键映射到整数,例如:

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

在这种情况下,是否有语法上最小的方法返回d-即62中的值之和?


Tags: 方法字典语法情况整数key2key1key3
3条回答

如你所料:

sum(d.values())

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

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

这基本上就是Benjamin Peterson的^{}模块所做的。

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

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

相关问题 更多 >