关于python:如何将两个列表合并到一个字典中,并对重复键的值求和

How to merge two lists into a dictionary and sum values for duplicate keys

本问题已经有最佳答案,请猛点这里访问。

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

我尝试过许多不同的代码,这些代码都是通过谷歌搜索找到的,但没有一个适用于这种情况,也没有一个运行得很好。我刚开始学Python,所以我确信我遗漏了一些东西!

1
2
3
4
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

如果我从这些列表开始:key_list=[1,5,3,8,5,8,3],value_list=[2,3,7,1,4,9,2]

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


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

1
2
3
4
5
6
>>> 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}