将列表列表转换为字典列表

时间:2014-11-15 00:34:35

标签: python list python-3.x dictionary

我需要一些强大的python语言的帮助: 我有这个:

person = (

('JD', 'John Doe'),
('MP', 'Marie Lance '),
)

我希望将其输出为:

[
 {'initials':'JD', 'name': 'John Doe'},
 {'initials’:’MP', 'name': 'Marie Lance'}
]

3 个答案:

答案 0 :(得分:1)

你不能拥有像你所描述的词典字典。字典中的每个项目都必须有一个键。正在寻找字典列表吗?

这是一个将元组转换为字典列表的解决方案。还有更多的" pythonic"对此的解决方案,但我会让您更容易理解。

persons = (

('JD', 'John Doe'),
('MP', 'Marie Lance '),
)

new_persons = list()
for person in persons:
    initials, name = person
    new_persons.append({'initials': initials, 'name' : name})

注意:请参阅hackaholics更多的pythonic解决方案。我有同样的事情,但在我编辑时,他打败了我。

答案 1 :(得分:1)

你可以列出一些词组:

>>> person
(('JD', 'John Doe'), ('MP', 'Marie Lance '))
>>> [ {'initials':x,'name':y} for x,y in person ]
[{'name': 'John Doe', 'initials': 'JD'}, {'name': 'Marie Lance ', 'initials': 'MP'}]

答案 2 :(得分:0)

[dict(zip(['initials','name'], p)) for p in person]