【问题标题】:List of lists of tuples to list of dicts元组列表到字典列表
【发布时间】:2019-07-03 13:57:49
【问题描述】:

我有一个类似的列表

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

我希望输出类似于字典列表

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

如何解析得到输出?

【问题讨论】:

标签: python


【解决方案1】:

试试这个列表理解:

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

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

【讨论】:

    【解决方案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 接受迭代,其中迭代中的每个项目都是它们自己的迭代,恰好有两个对象,就是这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 2013-02-23
      • 2021-07-24
      相关资源
      最近更新 更多