2013-10-09 93 views

回答

3

我不知道你想要的這兩個:

def get_all_values(list_o_dicts): 
    return [value for a_dict in list_o_dicts for value in a_dict.values()] 

...或...

def get_values(list_o_dicts, key): 
    return [a_dict[key] for a_dict in list_o_dicts] 

在這裏的行動是他們兩個人(a)實際上是有效的Python,並且(b)具有其他值,所以區別有所不同:

>>> src = [ 
...  {'a': 1, 'b': 2}, 
...  {'a': 3} 
... ] 
>>> get_all_values(src) 
[1, 2, 3] 
>>> get_values(src, 'a') 
[1, 3] 
+0

謝謝@abarnert。爲了清楚起見,在Python中調用了什麼樣的操作?這是一種列表理解的形式嗎? – Geuis

+0

是的,這些都是列表解析。第一個是有兩個嵌套的'for'子句的列表理解,它不是很常見或不可讀(我通常會使用'itertools.chain'來代替[list_o_dicts中的a_dict]的[a_dict.values()]' ,但我不想帶任何額外的東西來解釋)。第二個幾乎是列表解析的範例。 – abarnert

+0

感謝您的快速回答。我已經在node.js的土地上待了幾年,並且雙腳跳回了Python。 – Geuis

相關問題