简体   繁体   中英

Python - Converting nested list into dictionary

I have a nested list , how do I convert this into a dictionary

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

where the dictionary should read the below

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

I have tried to change into Pandas DataFrame and converted that into dictionary. But I am looking for a direct conversion from list into dictionary

Will appreciate your kind help. Expecting answers in Python 3

One way is to use zip , which iterates through i th element of each list sequentially:

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)}

Unpacking via *v , as suggested by @Jean-FrançoisFabre, ensures your values are lists.

Result

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

Another way is to use 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]}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM