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() 函式。每種方法都展示了一種實現所需結果的不同方法。可以根據您正在解決的問題型別使用上述任何一種方法。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP