从字典列表中获取值列表?

7

我有一个字典列表,需要从字典中获取给定键的值列表(所有字典都有相同的键)。

例如,我有:

l = [ { "key": 1, "Val1": 'val1 from element 1', "Val2": 'val2 from element 1' }, 
      { "key": 2, "Val1": 'val1 from element 2', "Val2": 'val2 from element 2' }, 
      { "key": 3, "Val1": 'val1 from element 3', "Val2": 'val2 from element 3' } ]

我需要获取1、2、3。

当然,我可以通过以下方式获取:

v=[]
for i in l:
    v.append(i['key'])

但我希望有更好的方法来实现这个目标。


1
他们都肯定有钥匙吗? - Padraic Cunningham
1个回答

11

使用简单的列表推导式(如果你确信每个字典都有这个键):

In [10]: [d['key'] for d in l]
Out[10]: [1, 2, 3]
否则,您需要先检查其是否存在:
In [11]: [d['key'] for d in l if 'key' in d]
Out[11]: [1, 2, 3]

一行代码,或更少 ;) - Lix
这正是我正在寻找的,将其放在一行上完成。我会测试它的,谢谢。 - Jester

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接