代码之家  ›  专栏  ›  技术社区  ›  Ahamed Moosa

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

  •  1
  • Ahamed Moosa  · 技术社区  · 8 年前

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

    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']}
    

    我尝试将其转换为熊猫数据框架并将其转换为字典。 但我正在寻找从列表到字典的直接转换

    非常感谢您的帮助。在Python 3中需要答案

    1 回复  |  直到 8 年前
        1
  •  11
  •   jpp    8 年前

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

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

    通过打开包装 *v 正如@Jean-Fran§oisFabre所建议的,确保您的值是列表。

    后果

    {'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]}