首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对字典中的所有值求和?

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

Stack Overflow用户
提问于 2011-02-03 07:01:45
回答 10查看 406.3K关注 0票数 308

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

代码语言:javascript
复制
d = {'key1': 1,'key2': 14,'key3': 47}

在这种情况下,有没有一种语法上最小的方法来返回d-i.e. 62中所有值的总和?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-02-03 07:02:38

正如您所期望的:

代码语言:javascript
复制
sum(d.values())
票数 609
EN

Stack Overflow用户

发布于 2011-02-03 07:18:55

在Python2中,您可以使用itervalues()字典方法来避免创建所有值的临时副本,该方法返回字典键的迭代器:

代码语言:javascript
复制
sum(d.itervalues())

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

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

代码语言:javascript
复制
import sys

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

sum(itervalues(d))

这基本上就是本杰明·彼得森的six模块所做的事情。

票数 69
EN

Stack Overflow用户

发布于 2011-02-03 07:04:15

当然有。下面是一种对字典的值进行求和的方法。

代码语言:javascript
复制
>>> d = {'key1':1,'key2':14,'key3':47}
>>> sum(d.values())
62
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4880960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档