假设我有一个字典,其中键映射到像这样的整数:
d = {'key1': 1,'key2': 14,'key3': 47}
是否有一种语法上最简单的方法来返回d中值的和,即。62个吗?
假设我有一个字典,其中键映射到像这样的整数:
d = {'key1': 1,'key2': 14,'key3': 47}
是否有一种语法上最简单的方法来返回d中值的和,即。62个吗?
当前回答
d = {'key1': 1,'key2': 14,'key3': 47}
sum1 = sum(d[item] for item in d)
print(sum1)
你可以使用for循环来实现
其他回答
d = {'key1': 1,'key2': 14,'key3': 47}
sum1 = sum(d[item] for item in d)
print(sum1)
你可以使用for循环来实现
您可以获得字典中所有值的生成器,然后将其转换为一个列表,并使用sum()函数获得所有值的和。
例子:
c={"a":123,"b":4,"d":4,"c":-1001,"x":2002,"y":1001}
sum(list(c.values()))
总和(d.值())
"d" ->你的字典变量
在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))
这就是本杰明·彼得森的六个模块所做的。
我觉得sum(d.values())是得到和的最有效的方法。
你也可以尝试reduce函数和lambda表达式一起计算总和:
reduce(lambda x,y:x+y,d.values())