python: 我想用两个二维列表制作一个字典

python: I want to make a dictionary using two, two dimensional lists

我想使用两个二维列表制作一个包含两个词典的列表。请注意,每个元素都必须与第二个列表的元素配对。

a = [[1,2,3],[4,5,6]]
b = [[7,8,9],[10,11,12]]
c = dict(zip(a,b))

不工作,因为列表不可散列。 然后我需要输出为

 c = [{1:7, 2:8, 3:9}, {4:10, 5:11, 6:12}]

您想要如下内容:

c = [dict(zip(keys, vals)) for keys, vals in zip(a, b)]

这里我们使用列表推导来压缩和转换原始列表 ab.

中每个内部列表的字典

或者,我们可以进一步展开理解,得到:

c = [{k: v for k, v in zip(keys, vals)} for keys, vals in zip(a, b)]

两者是等价的,只是风格问题。

输出:

>>> print(c)
[{1: 7, 2: 8, 3: 9}, {4: 10, 5: 11, 6: 12}]