将列表重组为dict

时间:2018-04-10 22:00:16

标签: python python-3.x list dictionary

给出以下数组:

fields1 = [ 'A1', 'B1', 'C1']
fields2 = [ 'A2', 'B2', 'C2']
array = [fields1, fields2, ...., fieldsN]

我需要以编程方式将数据重新组织到以下对象中:

the_fields = {
       'column1' : ['A1', 'A2'],
       'column2' : ['B1', 'B2'],
       'column3' : ['C1', 'C2']}

如何实现这一目标?

1 个答案:

答案 0 :(得分:5)

选项1
zip
在词典理解中使用zip ped pack。

fields = [fields1, fields2, ...., fieldsN]
{'column{}'.format(i) : list(v) for i, v in enumerate(zip(*fields), 1)}

{
   'column1' : ['A1', 'A2'],
   'column2' : ['B1', 'B2'],
   'column3' : ['C1', 'C2']   
}

选项2
pd.DataFrame.to_dict
此选项使用pandas API

import pandas as pd

pd.DataFrame(fields).rename(
    columns=lambda x: 'column{}'.format(x + 1)
).to_dict(orient='list')

{
   'column1' : ['A1', 'A2'],
   'column2' : ['B1', 'B2'],
   'column3' : ['C1', 'C2']   
}