假设我有一个字典,其中的键映射到整数,如下所示:
d = {'key1': 1,'key2': 14,'key3': 47}
在这种情况下,有没有一种语法上最小的方法来返回d
-i.e. 62
中所有值的总和?
发布于 2011-02-03 07:02:38
正如您所期望的:
sum(d.values())
发布于 2011-02-03 07:18:55
在Python2中,您可以使用itervalues()
字典方法来避免创建所有值的临时副本,该方法返回字典键的迭代器:
sum(d.itervalues())
在Python3中,您可以只使用d.values()
,因为该方法已更改为这样做(并且删除了itervalues()
,因为不再需要它)。
为了使编写与版本无关的代码更容易,这些代码总是迭代字典的键的值,实用函数可能会很有帮助:
import sys
def itervalues(d):
return iter(getattr(d, ('itervalues', 'values')[sys.version_info[0]>2])())
sum(itervalues(d))
这基本上就是本杰明·彼得森的six
模块所做的事情。
发布于 2011-02-03 07:04:15
当然有。下面是一种对字典的值进行求和的方法。
>>> d = {'key1':1,'key2':14,'key3':47}
>>> sum(d.values())
62
https://stackoverflow.com/questions/4880960
复制相似问题