将两个列表(一个包含重复元素,一个包含整数)合并到 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.1,在另一个嵌套数组中具有0.5值。列表是有序的,因此list_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}

我一直在搞砸zipzip_longestmap但我发现这些不起作用。我已经到了关于如何获取 JSON 数据的绘图板的地步,但如果有人有一个整洁的代码片段,那就太棒了。

您可以使用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

您可以使用defaultdict

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]
from collections import defaultdict
res = defaultdict(float)
for k, v in zip(list_1, list_2):
res[k] += v

相关内容