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} |