从字典列表中创建字典值列表

时间:2014-06-16 16:36:43

标签: python list dictionary map-function

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

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

我需要将一个键的所有数字都放到一个列表中,这样我就可以将它传递给这个函数(下面)。 (它不应该像这样,这是我能够做到的唯一解决方案)。我需要一些更高效的解决方案,可能是 map 功能或列表推导,但我不知道如何使用它们。

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'] ] )

2 个答案:

答案 0 :(得分:0)

    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"])

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

答案 1 :(得分:0)

这应该在一行中处理:

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

理解汇集了词典列表中所有常用键的列表(称为item),然后将键和值传递到bar_chart.add方法中。

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

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

祝你好运!