Python - 將單個專案字典組合成列表值


將單個專案字典組合成列表值對於資料聚合或重新格式化很有用。在 Python 中,我們可以使用多種方法來執行此任務,例如使用迴圈、使用列表推導式、使用 map() 函式以及使用 operator.itemgetter() 函式。在本文中,我們將探討將單個專案字典組合成列表值的多種方法。

方法 1:使用迴圈

一種簡單的方法是遍歷單個專案字典並將它們的值追加到列表中。讓我們藉助一個示例來實現此迴圈。

語法

list_name.append(element)

此處,append() 函式是用於將元素新增到 list_name 末尾的列表方法。它透過將指定元素作為新專案新增來修改原始列表。

示例

在下面的示例中,我們建立了一個名為 result 的空列表。然後,我們遍歷 single_item_dicts 列表中的每個字典。透過使用 values() 方法,我們將字典的值作為類似列表的物件獲取。由於每個字典只包含一個專案,因此我們可以使用索引 [0] 提取值。最後,我們將提取的值追加到 result 列表中。輸出顯示所需的列表值。

single_item_dicts = [{'fruit': 'apple'}, {'color': 'red'}, {'animal': 'lion'}]

result = []
for dictionary in single_item_dicts:
    result.append(list(dictionary.values())[0])

print(result)

輸出

['apple', 'red', 'lion']

方法 2:使用列表推導式

我們可以使用列表推導式將單個專案字典組合成列表值。讓我們藉助一個示例來了解此列表推導式方法。

語法

[expression for item in list if condition]

此處,表示式遍歷列表中的每個專案,並根據表示式末尾的 if 條件篩選元素。

示例

在下面的示例中,列表推導式允許我們在單行中生成一個新列表。在這種情況下,我們在方括號內使用與先前方法相同的邏輯。生成的列表推導式生成所需的列表值。

single_item_dicts = [{'fruit': 'apple'}, {'color': 'red'}, {'animal': 'lion'}]

result = [list(dictionary.values())[0] for dictionary in single_item_dicts]

print(result)

輸出

['apple', 'red', 'lion']

方法 3:使用 map() 函式

我們還可以使用 map() 函式以及 lambda 函式從字典中提取值。讓我們藉助一個示例來實現此 map() 函式。

語法

map(function, iterable)

此處,map() 函式接受兩個引數:函式和可迭代物件。它將函式應用於可迭代物件的每個元素,並返回一個產生結果的迭代器。在將單個專案字典組合成列表值的上下文中,該函式可以是 lambda 函式或用於從每個字典中提取所需值的預定義函式。

示例

在下面的示例中,我們使用 map() 函式將 lambda 函式應用於 single_item_dicts 列表中的每個字典。lambda 函式將字典作為輸入,使用與之前相同的邏輯提取其值,並將其返回。我們將結果包裝在 list() 呼叫中以獲取值的列表。

single_item_dicts = [{'fruit': 'apple'}, {'color': 'red'}, {'animal': 'lion'}]

result = list(map(lambda dictionary: list(dictionary.values())[0], single_item_dicts))

print(result)

輸出

['apple', 'red', 'lion']

方法 4:使用 operator.itemgetter() 函式

Python 的 operator 模組提供了一個名為 itemgetter() 的便捷函式。它允許我們從字典中提取特定專案。我們可以對單個專案字典實現此方法,如以下示例中所述。

語法

operator.itemgetter(*items)

此處,operator 模組中的 itemgetter() 函式建立一個可呼叫物件,該物件從給定物件中檢索指定的專案。它可以接受多個引數,表示要檢索的專案的索引或鍵。在我們的例子中,我們使用 itemgetter(0) 從每個字典中提取第一個專案(值)。

示例

在下面的示例中,我們首先匯入 operator 模組。然後,我們將 itemgetter(0) 函式應用於每個字典的值,這將返回每個字典的第一個專案(值)。與之前的方法類似,我們使用 map() 函式遍歷 single_item_dicts 列表並提取值。最後,我們將生成的 map 物件轉換為列表。

import operator

single_item_dicts = [{'fruit': 'apple'}, {'color': 'red'}, {'animal': 'lion'}]

result = list(map(operator.itemgetter(0), map(dict.values, single_item_dicts)))

print(result)

輸出

['apple', 'red', 'lion']

結論

在本文中,我們討論瞭如何使用不同的 Python 方法將單個專案字典組合成列表值。我們介紹了四種方法:使用迴圈、列表推導式、map() 函式和 operator.itemgetter() 函式。每種方法都展示了一種實現所需結果的不同方法。可以根據您正在解決的問題型別使用上述任何一種方法。

更新於: 2023-07-19

95 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.