【问题标题】:Python - Converting nested list into dictionaryPython - 将嵌套列表转换为字典
【发布时间】:2018-03-12 14:48:21
【问题描述】:

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

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 中的答案

【问题讨论】:

    标签: python list dictionary


    【解决方案1】:

    一种方法是使用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]}
    

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 2021-09-25
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2022-12-05
      • 2017-07-29
      相关资源
      最近更新 更多