假设我有一个字典,其中键(key)映射到整数:
d = {'key1': 1,'key2': 14,'key3': 47}
有没有一种语法上简约的方法来返回d
中值的总和,即在此例中为62
?
假设我有一个字典,其中键(key)映射到整数:
d = {'key1': 1,'key2': 14,'key3': 47}
有没有一种语法上简约的方法来返回d
中值的总和,即在此例中为62
?
正如你所期望的:
sum(d.values())
Python 2.7.12
也可以很好地使用sum(d.values())
。 - LancelotHolmesd.values()
。 - phihag在Python2中,你可以通过使用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))
这基本上就是 Benjamin Peterson 的 six
模块所做的。
当然有方法。这里是一种计算字典值总和的方式。
>>> d = {'key1':1,'key2':14,'key3':47}
>>> sum(d.values())
62
d = {'key1': 1,'key2': 14,'key3': 47}
sum1 = sum(d[item] for item in d)
print(sum1)
你可以使用for循环来完成它
sum(d.values())
我认为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)
最简单/最傻的解决方案:
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)
d = {'data': 100, 'data2': 200, 'data3': 500}
total = 0
for i in d.values():
total += i
总数 = 800
sum(d.values())
,因为.values()
返回的是一个List
。 - Linny
reduce
实现sum
--reduce
是一种更通用的形式(例如,sum
、min
和max
都可以用reduce
来编写),并且可以轻松解决其他问题(例如,product
)。 - user166390