【问题标题】:Create list of values from dictionary from a list of dictionaries [duplicate]从字典列表中创建字典中的值列表[重复]
【发布时间】:2014-06-16 16:36:43
【问题描述】:

我只需要将字典列表中的值传递给函数。 字典列表如下所示

[ { "positive" : 515, "neutral" : 22, "negative": 1515 },
  { "positive": 15555, "neutral": 2525, "negative": 111}
  ......
]

我需要将一个键的所有数字放入一个列表中,以便我可以将它传递给这个函数(如下)。 (它不应该是这样的,这是我能够做到的唯一解决方案)。我需要一些更有效的解决方案,也许是带有 map 函数或 list comprehensions 的东西,但我不知道如何使用这些。

bar_chart.add('neutral', [ dictList[0]['neutral'],dictList[1]['neutral'],dictList[2]['neutral'] ....... ['neutral'],dictList[23]['neutral'] ] )
bar_chart.add('positive', [ dictList[0]['positive'],dictList[1]['positive'],dictList[2]['positive'], ......... ,dictList[23]['positive'] ] )

【问题讨论】:

  • bar_chart.add('neutral', [item['neutral'] for item in dictList])?

标签: python list dictionary map-function


【解决方案1】:

这应该在一行中处理它:

[bar_chart.add(key,[item[key] for item in dictList]) for key in dictList[0].keys()]

理解为您的字典列表(称为 asitem)中的所有常用键组合列表,然后将键和值传递给您的 bar_chart.add 方法。

理解本身会产生一个公共键值列表:

>>> [[item[key] for item in dictList] for key in dictList[0].keys()]
[[515, 15555], [22, 2525], [1515, 111]]

祝你好运!

【讨论】:

    【解决方案2】:
        dictlist =[ { "positive" : 515, "neutral" : 22, "negative": 1515 },
                 { "positive": 15555, "neutral": 2525, "negative": 111}]
    
        poslist = []
        neutlist = []
        neglist = []
        for stuff in dictlist:
                poslist.append(stuff["positive"])
                neutlist.append(stuff["neutral"])
                neglist.append(stuff["negative"])
    

    那么您将只有相应列表中的值...

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 2019-04-11
      • 2018-09-09
      • 1970-01-01
      相关资源
      最近更新 更多