【问题标题】:python list of dicts - convert each key-value as a individual dictpython list of dicts - 将每个键值转换为单独的dict
【发布时间】:2020-03-10 15:59:55
【问题描述】:

下面的列表包含一个或多个字典

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 ?? - 需要一些帮助来获得内部理解。

【问题讨论】:

  • 如果两个不同的字典有相同的键,你想发生什么?例如,l = [{'b': 'h', 'c': (1,2)}, {'b': [0, 1]}]

标签: python list-comprehension


【解决方案1】:

我相信这就是您要查找的内容 - 除了元素的顺序可能不同,但在处理字典时这是可以预料的:

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]}]

【讨论】:

    【解决方案2】:

    这应该可行:

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

    【讨论】:

      猜你喜欢
      • 2014-12-17
      • 1970-01-01
      • 2013-05-25
      • 2019-08-28
      • 1970-01-01
      • 2020-10-15
      • 2011-01-05
      • 1970-01-01
      • 2012-11-29
      相关资源
      最近更新 更多