2013-04-29 162 views
1

從字典對象列表開始,如何基於密鑰獲取僅包含一些字典值的新列表?從字典列表中獲取新列表

例如:

my_list = [ {'foo':1},{'bar':2},{'foo':3} ] 
new_list = grab_values(my_list, 'foo') 

我們所希望的:

new_list = [1, 3] 

回答

8

首先想到的是:

In [2]: [x['foo'] for x in my_list if 'foo' in x] 
Out[2]: [1, 3] 

作爲一個功能:

In [3]: def grab_values(l, key): 
    ...:  return [x[key] for x in l if key in x] 
    ...: 

In [4]: grab_values(my_list, 'foo') 
Out[4]: [1, 3] 
+0

是的,我只是用它作爲例子,從來沒有在我的真實代碼中使用它。編輯OP。 – 2013-04-29 21:01:19

+0

@ user11177好:)刪除了通知。您可以刪除評論。 – 2013-04-29 21:05:09

+0

似乎我不被允許..也許沒有足夠的代表。 – 2013-04-29 21:23:29