如何将嵌套列表转换为字典?

vit*_*nSí 1 python dictionary nested-lists

我想采用嵌套列表,例如:

list = [[Name, Height, Weight],[Dan, 175, 75],[Mark, 165, 64], [Sam, 183, 83]]
Run Code Online (Sandbox Code Playgroud)

并将其转换为字典,如:

dict = {Name: [Dan,Mark, Sam], Height: [175, 165, 183], Weight: [75, 64, 83]}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我当前的代码并没有真正给我我正在寻找的字典格式。

list = [[Name, Height, Weight],[Dan, 175, 75],[Mark, 165, 64], [Sam, 183, 83]]
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我并找出我哪里出错了吗?

Mus*_*dın 5

首先将键和其余键分开,然后使用以下命令构造字典zip

keys, *rest = list_of_lists

out = dict(zip(keys, zip(*rest)))
Run Code Online (Sandbox Code Playgroud)

list_of_lists您调用的内容在哪里list(但请不要使用它,因为它会遮蔽 builtin list)。首先*是从第二个列表开始吞食所有列表。第二个*zip一种转置的名单重新排序

要得到

>>> out

{"Name": ("Dan", "Mark", "Sam"),
 "Height": (175, 165, 183),
 "Weight": (75, 64, 83)}
Run Code Online (Sandbox Code Playgroud)

这给出了值中的元组,但要获取列表,您可以map

out = dict(zip(keys, map(list, zip(*rest))))
Run Code Online (Sandbox Code Playgroud)