假设我有一个字典,其中键映射到像这样的整数:
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循环来实现
其他回答
Phihag的答案(以及类似的答案)在python3中不能工作。
对于python 3:
d = {'key1': 1,'key2': 14,'key3': 47}
sum(list(d.values()))
更新! 有人抱怨它不管用!我只是从我的终端附上了一个截图。可能是版本不匹配等。
你可以考虑使用for loop:
d = {'data': 100, 'data2': 200, 'data3': 500}
total = 0
for i in d.values():
total += i
总数= 800
简单/荒谬的解决方案:
https://trinket.io/python/a8a1f25353
d = {'key1': 1,'key2': 14,'key3': 47}
s = 0
for k in d:
s += d[k]
print(s)
或者如果你想让它更花哨:
https://trinket.io/python/5fcd379536
import functools
d = {'key1': 1,'key2': 14,'key3': 47}
s = functools.reduce(lambda acc,k: acc+d[k], d, 0)
print(s)
我觉得sum(d.values())是得到和的最有效的方法。
你也可以尝试reduce函数和lambda表达式一起计算总和:
reduce(lambda x,y:x+y,d.values())
使用sum()对字典中的值求和。
调用dict.values()返回字典dict的值。 使用sum(values)返回上一步中值的和。
d = {'key1':1,'key2':14,'key3':47}
values = d.values()
#Return values of a dictionary
total = sum(values)
print(total)