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)]
这里我们使用列表推导来压缩和转换原始列表 a
和 b
.
中每个内部列表的字典
或者,我们可以进一步展开理解,得到:
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}]
我想使用两个二维列表制作一个包含两个词典的列表。请注意,每个元素都必须与第二个列表的元素配对。
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)]
这里我们使用列表推导来压缩和转换原始列表 a
和 b
.
或者,我们可以进一步展开理解,得到:
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}]