Skip to main content
 首页 » 编程设计

Python之将嵌套列表转换为字典

2025年05月04日12webabcd

我有一个嵌套列表,如何将其转换成字典

data = [["Employee","Salary","Age","Gender"],["001",1200,25,"M"],["002",1300,28,"M"],["003",1400,32,"M"],["004",1700,44,"F"]] 

字典应该读下面的地方

dict = {'Employee':['001','002','003','004'],'Salary':[1200,1300,1400,1700],'Age':[25,28,32,44],'Gender':['M','M','M','F']} 

我试图更改为 Pandas DataFrame 并将其转换为字典。 但我正在寻找从列表到字典的直接转换

感谢您的帮助。期待 Python 3 中的答案

请您参考如下方法:

一种方法是使用 zip,它按顺序遍历每个列表的第 i 个元素:

data = [["Employee","Salary","Age","Gender"], 
        ["001",1200,25,"M"], 
        ["002",1300,28,"M"], 
        ["003",1400,32,"M"], 
        ["004",1700,44,"F"]] 
 
d = {k: v for k, *v in zip(*data)} 

按照@Jean-FrançoisFabre 的建议,通过*v 解包,确保您的值是列表。

结果

{'Age': [25, 28, 32, 44], 
 'Employee': ['001', '002', '003', '004'], 
 'Gender': ['M', 'M', 'M', 'F'], 
 'Salary': [1200, 1300, 1400, 1700]} 

另一种方法是使用pandas:

import pandas as pd 
 
df = pd.DataFrame(data[1:], columns=data[0]).to_dict('list') 
 
# {'Age': [25, 28, 32, 44], 
#  'Employee': ['001', '002', '003', '004'], 
#  'Gender': ['M', 'M', 'M', 'F'], 
#  'Salary': [1200, 1300, 1400, 1700]}