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

标签 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]}
    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}

最佳答案

这里最好使用普通的旧循环:

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

关于python - 如何将两个列表合并到字典中并对重复键的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225574/

相关文章:

pointers - Golang - 带指针的 map 的空间效率

python - 如何从Python字典中打印2个键

python - 通过numba在Python中高效模拟任意动力系统?

python - DataFrame 来自多个字典的列表,其中键是索引,值是列数据

python - Python OpenCV-如何删除窗口边框和标题

python - 定义自定义错误消息 Flask Restful API

python - 如何保存有元组键的字典

Javascript/jQuery 查找文本重复项

python - 使用 python3.7 进行慢速列表解析以删除重复项

mysql - 我希望在我的 in () 语句中包含重复项