首页 > 解决方案 > 将两个列表(一个包含重复元素,一个包含整数)合并到 dict 中

问题描述

所以我有两个列表,它们是通过基于一些参数抓取 JSON 数据创建的,例如:

list_1 = ['red', 'green', 'blue', 'yellow', 'red', 'blue', 'pink')
list_2 = [0.1, 0.1, 0.7, 0.4, 0.5, 0.6, 1.5]

在 JSON 数据中,键在一个嵌套数组和另一个嵌套数组中'red'都有值。列表是按顺序排列的,因此对应于和等...0.10.5list_1[0]list_2[0]list_1[1]list_2[1]

我的目标是最终得到一个字典,其中包含来自 的独特元素list_1和来自. 例如:list_2

dict_1 = {'red': 0.6, 'green': 0.1, 'blue': 1.3, 'yellow': 0.4, 'pink': 1.5}

我一直在搞乱zip, zip_longestmap但我发现这些行不通。关于如何获取 JSON 数据,我已经到了要回到绘图板上的地步,但是如果有人有一个简洁的代码片段,那将是很棒的。

标签: pythonlistdictionarymergeadd

解决方案


您可以使用zip()来生成对并对其进行迭代:

list_1 = ['red', 'green', 'blue', 'yellow', 'red', 'blue', 'pink']
list_2 = [0.1, 0.1, 0.7, 0.4, 0.5, 0.6, 1.5]

res = {}
for key, value in zip(list_1, list_2):
    if key in res:
        res[key] += value
    else:
        res[key] = value

推荐阅读