元组列表到字典列表

时间:2019-07-03 13:57:49

标签: python

我有一个类似

的列表
[[('a', 'b'), ('c', 'd')], [('e', 'f'), ('g', 'h')]]

我希望输出像字典列表一样

[{'a': 'b', 'c': 'd'}, {'e': 'f', 'g': 'h'}]

如何解析它以获取输出?

2 个答案:

答案 0 :(得分:2)

一种方法是使用包含对内部字典的字典理解的列表理解:

l = [ [('a' , 'b'), ('c' , 'd')] , [('e' , 'f') , ('g' , 'h')] ]

[{k:v for k,v in i} for i in l]
# [{'a': 'b', 'c': 'd'}, {'e': 'f', 'g': 'h'}]

或直接使用dict构造函数进行映射:

list(map(dict, l))
# [{'a': 'b', 'c': 'd'}, {'e': 'f', 'g': 'h'}]

请注意,这最后一种方法的工作方式为dict接受可迭代对象,其中可迭代对象中的每个项目都是由恰好具有两个对象的可迭代对象组成的,这种情况。

答案 1 :(得分:2)

尝试此列表理解:

>>> l = [ [('a' , 'b'), ('c' , 'd')] , [('e' , 'f') , ('g' , 'h')] ]
>>> [dict(k) for k in l]
[{'a': 'b', 'c': 'd'}, {'e': 'f', 'g': 'h'}]

您可以使用dict()将元组列表(每个都有一对项)直接放入字典中。