我需要创建一个接受字典列表并返回其总和的函数
例如
200
中,它需要返回[{(1,3):2, (2,7):1} , {(1,3):6}]
{(1,3):
8, (2,7): 1}
,则会从
字典。这里的问题是它返回0
[(1, 3), 6]
答案 0 :(得分:1)
您的代码很难跟一个字母的变量名一起使用,所以我写了一些新的东西,我认为它可以满足您的要求:
def merge_dictionaries(list_of_dictionaries):
results_dict = dict()
for dictionary in list_of_dictionaries:
for key, value in dictionary.items():
results_dict[key] = results_dict.get(key, 0) + value
return {key: value for (key, value) in results_dict.iteritems() if value != 0}
print merge_dictionaries([{(1,3):2, (2,7):1} , {(1,3):6 , (9,9) : 0}])
>>> {(2, 7): 1, (1, 3): 8}
它会遍历列表中的每个字典,并将该值加到到目前为止的总和中,然后过滤掉最后总和为0的答案。
答案 1 :(得分:0)
可能您正在寻找这样的东西:
def swe(lst):
res = dict()
for d in lst:
for key,value in d.items():
if key in res:
res[key] += value
else:
res[key] = value
for key,value in res.items():
if value == 0:
res.pop(key)
return res