Python – Convertir una lista anidada en un diccionario

Tengo una lista anidada, ¿cómo puedo convertir esto en un diccionario?

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

donde el diccionario debe leer el siguiente

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

He intentado cambiar a Pandas DataFrame y lo he convertido en diccionario. Pero estoy buscando una conversión directa de la lista al diccionario

Apreciaré su amable ayuda. Esperando respuestas en Python 3

Una forma es usar zip , que itera secuencialmente a través del elemento i de cada lista:

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

Desembalar a través de *v , como lo sugiere @ Jean-FrançoisFabre, asegura que sus valores sean listas.

Resultado

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

Otra forma es usar 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]}