从字典python列表中查找键的值

时间:2014-02-14 15:26:53

标签: python list dictionary find

如何从词典列表中获取给定键的值?

mylist= [
    {
      'powerpoint_color': 'blue',
      'client_name': 'Sport Parents (Regrouped)'
    },
    {
      'sort_order': 'ascending',
      'chart_layout': '1',
      'chart_type': 'bar'
    }
]

'mylist'中的词典数量未知,我想找到附加到键'sort_order'的值。

我失败的尝试:

for key in mylist:
    for value in key:
        print key['sort_order']

由于

4 个答案:

答案 0 :(得分:5)

mylist= [{'powerpoint_color': 'blue', 'client_name': 'Sport Parents (Regrouped)'}, {'sort_order': 'ascending', 'chart_layout': '1', 'chart_type': 'bar'}]

print [d["sort_order"] for d in mylist if "sort_order" in d][0]

结果:

ascending

您还可以将所有词典合并为一个词典,并访问:

combined_d = {key: value for d in mylist for key,value in d.iteritems() }
print combined_d["sort_order"]

答案 1 :(得分:2)

您可以使用以下代码获取它:

for d in mylist:
    if 'sort_order' in d:
        print(d['sort_order'])

首先迭代列表,为每个字典检查它是否需要密钥以及是否确实获得了值。

答案 2 :(得分:0)

那样的东西?

for hash in mylist:
    if "sort_order" in hash: print hash ["sort_order"]

答案 3 :(得分:0)

虽然不可读,但这个版本:

  • 提供短路
  • 避免双重查询

print reduce( lambda a,b: a or b, (l.get("sort_order") for l in mylist) )

请注意,如果您的某些键被评估为false,则会失败,但是开发一个不是从这个起点开始的版本并不困难