如何通过将两个列表合并在一起来创建字典列表,其中键是重复的



我有两个列表:

lst = [1.1, 1.1, 1.1, 1.1]
keys = [[2, 3, 1, 4], [2, 1, 4, 3], [3, 1, 2, 4], [3, 2, 4, 1]]

我想创建一个字典和输出的列表:

d = [{2: 1.1, 3: 1.1, 1: 1.1, 4: 1.1}, {2: 1.1, 1: 1.1, 4: 1.1, 3: 1.1}, {3: 1.1, 1: 1.1, 2: 1.1, 4: 1.1}, {3: 1.1, 2: 1.1, 4: 1.1, 1: 1.1}]

我试过d = [dict(zip(keys, i)) for i in lst]

但这返回TypeError: zip argument #2 must support iteration

感谢的任何帮助

对于keys中的每个元素d,您希望通过将l的每个元素与d压缩来创建一个字典,因此

[dict(zip(d, l)) for d in keys]

您需要迭代密钥:

l = [1.1, 1.1, 1.1, 1.1]
keys = [[2, 3, 1, 4], [2, 1, 4, 3], [3, 1, 2, 4], [3, 2, 4, 1]]
d = [dict(zip(i, l)) for i in keys]
print(d)

输出:

[{2: 1.1, 3: 1.1, 1: 1.1, 4: 1.1}, {2: 1.1, 1: 1.1, 4: 1.1, 3: 1.1}, {3: 1.1, 1: 1.1, 2: 1.1, 4: 1.1}, {3: 1.1, 2: 1.1, 4: 1.1, 1: 1.1}]

最新更新