从列表列表中创建字典列表,列表[0]作为键,其他列表作为值

Making a list of dict from a list of lists with the list[0] as keys and other lists as values

你能告诉我如何从中获取一个字典列表,其中 a[0] 作为每个字典的键,a[1:] 作为相应的值。

a = [['PORT', 'NAME', 'STATUS', 'VLAN', 'DUPLEX', 'SPEED', 'TYPE', 'FC_MODE'], ['Gi1/0/1', 'S1-P1-01 Cisco_Roo', 'connected', '248', 'a-full', 'a-1000', '10/100/1000BaseTX', ''], ['Gi1/0/2', '', 'notconnect', '121', 'auto', 'auto', '10/100/1000BaseTX', ''], ['Gi1/0/3', '', 'notconnect', '121', 'auto', 'auto', '10/100/1000BaseTX', '']]

我想要

[{'PORT' : 'Gi1/0/1', 'NAME' : 'S1-P1-01 Cisco_Roo', . . . }, {'PORT' : 'Gi1/0/2', 'NAME' : '', .
.
.
}]

这个有用吗?

a = [
    ['PORT', 'NAME', 'STATUS', 'VLAN', 'DUPLEX', 'SPEED', 'TYPE', 'FC_MODE'], 
    ['Gi1/0/1', 'S1-P1-01 Cisco_Roo', 'connected', '248', 'a-full', 'a-1000', '10/100/1000BaseTX', ''],
    ['Gi1/0/2', '', 'notconnect', '121', 'auto', 'auto', '10/100/1000BaseTX', ''],
    ['Gi1/0/3', '', 'notconnect', '121', 'auto', 'auto', '10/100/1000BaseTX', '']
    ]

import pandas as pd 

pd.DataFrame(a[1:],columns=a[0]).to_dict(orient="records")

创建此输出。

[{'PORT': 'Gi1/0/1',
  'NAME': 'S1-P1-01 Cisco_Roo',
  'STATUS': 'connected',
  'VLAN': '248',
  'DUPLEX': 'a-full',
  'SPEED': 'a-1000',
  'TYPE': '10/100/1000BaseTX',
  'FC_MODE': ''},
 {'PORT': 'Gi1/0/2',
  'NAME': '',
  'STATUS': 'notconnect',
  'VLAN': '121',
  'DUPLEX': 'auto',
  'SPEED': 'auto',
  'TYPE': '10/100/1000BaseTX',
  'FC_MODE': ''},
 {'PORT': 'Gi1/0/3',
  'NAME': '',
  'STATUS': 'notconnect',
  'VLAN': '121',
  'DUPLEX': 'auto',
  'SPEED': 'auto',
  'TYPE': '10/100/1000BaseTX',
  'FC_MODE': ''}]

最简单的可能是:

[dict(zip(a[0], x)) for x in a[1:]]

从 1 开始遍历每个元素,并将其与第一个元素组合,转换为字典。