从您对其他答案的评论来看,我认为这需要一个两步过程,首先获取一个字典列表,而不是您在问题中拥有的“矩阵”,然后对其进行修改。
为了完整起见,让我们设置
list_of_lists = [['ID', 'fName', 'lName'],
['A101', 'Mark', 'Smith'],
['A102', 'Jane', 'Smith'],
['A103', 'Mark', 'Twain'],
['A104', 'Ann', 'Lee']]
因此,要将您拥有的列表列表放入 dicts 列表中,您可以执行以下操作:
keys = list_of_lists[0]
data = [dict(zip(keys, values)) for values in list_of_lists[1:]]
data
现在包含一个字典列表。
[{'ID': 'A101', 'fName': 'Mark', 'lName': 'Smith'},
{'ID': 'A102', 'fName': 'Jane', 'lName': 'Smith'},
{'ID': 'A103', 'fName': 'Mark', 'lName': 'Twain'},
{'ID': 'A104', 'fName': 'Ann', 'lName': 'Lee'}]
现在,很容易通过理解得到你想要的另一个列表:
[{d['ID']: (d['fName'], d['lName'])} for d in data]
我怀疑您可能正在从文件中读取此列表列表,可能正在使用该csv
模块。如果是这种情况,您可以使用DictReader
. 因此,假设您的文件如下所示:
ID,fName,lName
A101,Mark,Smith
A102,Jane,Smith
A103,Mark,Twain
A104,Ann,Lee
你可以data
通过做得到
import csv
data = csv.DictReader(open('test.csv'))