0
在幾年內沒有使用過Python,並且很難記住如何執行此操作。使用對象列表中的特定鍵生成列表
src = [
{a: 1},
{a: 2, b: 'foo'},
{a: 3}
]
#python magic here outputs:
#[1,2,3]
*編輯爲清楚起見
在幾年內沒有使用過Python,並且很難記住如何執行此操作。使用對象列表中的特定鍵生成列表
src = [
{a: 1},
{a: 2, b: 'foo'},
{a: 3}
]
#python magic here outputs:
#[1,2,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]
謝謝@abarnert。爲了清楚起見,在Python中調用了什麼樣的操作?這是一種列表理解的形式嗎? – Geuis
是的,這些都是列表解析。第一個是有兩個嵌套的'for'子句的列表理解,它不是很常見或不可讀(我通常會使用'itertools.chain'來代替[list_o_dicts中的a_dict]的[a_dict.values()]' ,但我不想帶任何額外的東西來解釋)。第二個幾乎是列表解析的範例。 – abarnert
感謝您的快速回答。我已經在node.js的土地上待了幾年,並且雙腳跳回了Python。 – Geuis