【问题标题】:How to get a list of all values of one-pair dictionaries inside a list, each dictionary having a different key? [duplicate]如何获取列表中一对字典的所有值的列表,每个字典都有不同的键? [复制]
【发布时间】:2021-09-09 12:54:21
【问题描述】:

给定一个字典列表,每个字典只有一对键值,每个字典都有不同的键和值,
如何获取字典所有值的列表?

示例:

给定

my_list = [
            {'A': 'first'}, 
            {'B': 'second'}, 
            {'C': 'third'}, 
            {'D': 'fourth'}, 
            {'E': 'fifth'}, 
            {'F': 'sixth'}
          ]

我想得到

My_list_2 = [
             'first', 
             'second', 
             'third', 
             'fourth', 
             'fifth', 
             'sixth'
            ]

我该怎么做?

我试过了

my_list_2 = [ el.values() for el in my_list ] 

但我明白了

[dict_values(['first']),
 dict_values(['second']),
 dict_values(['third']),
 dict_values(['fourth']),
 dict_values(['fifth']),
 dict_values(['sixth'])]

【问题讨论】:

  • 对不起,我没有仔细评估就驳回了您的建议。您提到的答案实际上为我的问题提供了解决方案,因为它建议的表达式,即next(iter(d.values())),可用于构建此列表理解:[ next(iter(d.values())) for d in my_list],这就是我寻求的结果。我可能比@Suyog Shimpi 提出的解决方案更有效率,但我认为后一个答案更清晰,更容易理解。

标签: python list dictionary


【解决方案1】:

你可以这样使用

my_list_2 = [ ol for el in my_list for ol in el.values() ]

结果将是 -

['first', 'second', 'third', 'fourth', 'fifth', 'sixth']

【讨论】:

    【解决方案2】:

    试试这个:

    My_list_2 = [v for m in my_list for k,v in m.items()]
    # ['first', 'second', 'third', 'fourth', 'fifth', 'sixth']
    

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 2012-05-21
      • 2020-08-20
      • 2019-03-27
      • 2017-01-04
      • 1970-01-01
      • 2023-01-04
      • 2017-06-26
      • 1970-01-01
      相关资源
      最近更新 更多