将列表放入dict,第一行标题为键

时间:2016-10-17 22:47:22

标签: python

我有以下python列表:

[['A,B,C,D'],
 ['1,2,3,4'],
 ['5,6,7,8']]

如何将它放入dict并使用第一个子列表作为键?:

{'A': '1',
 'B': '2',
 'C': '3',
 'D': '4'}
{'A': '5',
 'B': '6',
 'C': '7',
 'D': '8'}

提前致谢!

3 个答案:

答案 0 :(得分:1)

在每个子列表中拆分字符串后,您可以zip列表的第一个元素以及列表的其余元素:

# to split string in the sublists
lst = [i[0].split(',') for i in lst]

[dict(zip(lst[0], v)) for v in lst[1:]]

#[{'A': '1', 'B': '2', 'C': '3', 'D': '4'},
# {'A': '5', 'B': '6', 'C': '7', 'D': '8'}]

答案 1 :(得分:1)

只需使用DictReader实例即可。人们通常将它们与文件对象一起使用,但实际上它并不关心你传递它的内容,只要它可以迭代它。

dev

答案 2 :(得分:1)

让我们从问题中提供的数据开始:

>>> a = [['A,B,C,D'], ['1,2,3,4'], ['5,6,7,8']]

现在,让我们将其转换为所需的词典列表:

>>> [dict(zip(a[0][0].split(','), c[0].split(','))) for c in a[1:]]
[{'A': '1', 'C': '3', 'B': '2', 'D': '4'}, {'A': '5', 'C': '7', 'B': '6', 'D': '8'}