假设我有一个字典,其中键映射到像这样的整数:

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循环来实现

其他回答

如你所料:

sum(d.values())

您可以获得字典中所有值的生成器,然后将其转换为一个列表,并使用sum()函数获得所有值的和。

例子:

c={"a":123,"b":4,"d":4,"c":-1001,"x":2002,"y":1001}

sum(list(c.values()))

Phihag的答案(以及类似的答案)在python3中不能工作。

对于python 3:

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

更新! 有人抱怨它不管用!我只是从我的终端附上了一个截图。可能是版本不匹配等。

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

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

我觉得sum(d.values())是得到和的最有效的方法。

你也可以尝试reduce函数和lambda表达式一起计算总和:

reduce(lambda x,y:x+y,d.values())