Python 如何将两个列表合并到字典中,并对重复键的值求和

Python 如何将两个列表合并到字典中,并对重复键的值求和,python,dictionary,duplicates,Python,Dictionary,Duplicates,我试图构建一个函数,将两个列表合并到一个字典中,但“key”列表包含重复项。我想根据键对值求和。列表可以有任意数量的值(但每个列表都有相同的值) 我通过谷歌搜索找到了许多不同的代码,但没有一个是针对这种情况的,也没有一个是完全正确的。我刚刚开始学习Python,所以我确信我还缺少一些东西 my_dict={} def merge_lists(my_dict): newlist={k: sum(i[k] for i in my_dict) for k in my_dict[0]}

我试图构建一个函数,将两个列表合并到一个字典中,但“key”列表包含重复项。我想根据键对值求和。列表可以有任意数量的值(但每个列表都有相同的值)

我通过谷歌搜索找到了许多不同的代码,但没有一个是针对这种情况的,也没有一个是完全正确的。我刚刚开始学习Python,所以我确信我还缺少一些东西

my_dict={}
def merge_lists(my_dict):
    newlist={k: sum(i[k] for i in my_dict) for k in my_dict[0]}
    return newlist       
如果我从以下列表开始: 键列表=[1,5,3,8,5,8,3],值列表=[2,3,7,1,4,9,2]


我在寻找这个结果:{'1':2,'3':9,'5':7,'8':10}

一个简单的旧循环在这里是最好的:

>>> data = {}
>>> for key, val in zip(key_list, value_list): 
...     data[key] = data.get(key, 0) + val 
... 
>>> data 
{1: 2, 5: 7, 3: 9, 8: 10}

@DanielMesejo在本例中,重复键在同一个字典中,因此我认为它们需要类似于带循环的defaultdict的东西。也许你们能找到那个重复的。@coldspeed:ufff,公认的答案是可怕的。@wim-true。但另一个答案现在有更多的选票。你认为它会以不同的方式关闭吗?这是一个复制品。也许另一个问答答案更好?我已经尝试过这两个帖子中发布的解决方案(以及任何其他帖子,甚至有点类似),但都不起作用。
data=collections.defaultdict(int)
等等。