我有一个 list -
index = ['a','b','c','d']
还有一个二维列表-
val = [[1,11,21,31],[3,13,23,33],[7,17,27,37]]
我如何将这些数组映射到字典中,以便值如下 -
d = {'a': [1,3,7] ,'b': [11,13,17] ,'c': [21,23,27] ,'d': [ 31,33,37] }
.
最有效的方法是什么?
我想通过遍历 2d 列表来做这件事不是很有效吗?
有什么方法可以通过使用 dict(zip()
函数来实现,即我们在映射两个一维列表时采用的方式吗?
我尝试使用 dict(zip(index,val))
。但它给了我
d = {'a':[1,11,21,31],'b':[3,13,23,33],'c':[7,17,27,37]
谢谢。
最佳答案
val
的形状为 (3,4)
,但是为了使用 zip
形成一个 dict
,第一个维度必须与索引的数量相匹配:在本例中为 4。您可以通过转置 val
来实现这一点。
转置列表列表:
>>> zip(*val)
[(1, 3, 7), (11, 13, 17), (21, 23, 27), (31, 33, 37)]
然后您可以将结果与索引一起压缩以形成 dict
:
>>> dict(zip(index, zip(*val)))
{'d': (31, 33, 37), 'a': (1, 3, 7), 'b': (11, 13, 17), 'c': (21, 23, 27)}
关于python - 将二维列表和一维列表映射到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29208015/