让我们说我有这个元组列表(可能是长度n):
keysVals = [('one',10),('two',15),('three',20),('four',5)]
然后我可以从该列表创建字典:
for k,v in keysVals:
d.setdefault(week,int())
d[k]+=v
如何将以前的dict值添加到当前的dict值中,并显示以下输出?:
d = {'one':10, 'two':25, 'three':45, 'four': 50}
答案 0 :(得分:4)
使用itertools.accumulate
得到一个连续的总和:
import itertools
keysVals = [('one', 10), ('two', 15), ('three', 20), ('four', 5)]
keys, vals = zip(*keysVals)
d = dict(zip(keys, itertools.accumulate(vals)))
print(d)
# {'one': 10, 'two': 25, 'three': 45, 'four': 50}
答案 1 :(得分:2)
此完整程序演示了一种方法,该方法可在Python 2和3中使用。
keysVals = [('one',10),('two',15),('three',20),('four',5)]
d = {}
sum = 0
for keyVal in keysVals:
sum += keyVal[1]
d[keyVal[0]] = sum
print(d)
它基本上遍历整个列表,将每个值加到一个和(最初为零),然后使用该和填充相关的字典项。输出是预期的:
{'one': 10, 'two': 25, 'three': 45, 'four': 50}