python字典列表-将每个键值转换为单独的字典

时间:2020-03-10 15:59:55

标签: python list-comprehension

具有如下列表的一个或多个字典

l = [{'b': 'h', 'c': (1,2)}, {'d': [0, 1], 'e': {'f': 2, 'g': 'i'} } ]

需要将每个键值对提取为一个单独的字典

预期产量

[{'b': 'h'}, {'c': (1,2)}, {'d': [0, 1]}, {'e': {'f': 2, 'g': 'i'} } ]

我一直在尝试通过列表理解来做到这一点-外部理解可能类似于[ {k,v} for k, v in ??-需要一些帮助来获得内部理解。

2 个答案:

答案 0 :(得分:6)

我相信这是您要寻找的-除了元素的顺序可能不同之外,但这在处理字典时是可以预期的:

lst = [{'b': 'h', 'c': (1,2)}, {'d': [0, 1], 'e': {'f': 2, 'g': 'i'}}]
[{k: v} for d in lst for k, v in d.items()]

=> [{'c': (1, 2)}, {'b': 'h'}, {'e': {'g': 'i', 'f': 2}}, {'d': [0, 1]}]

答案 1 :(得分:3)

这应该有效:

[{k: v} for i in l for k, v in i.items()]