首頁 >後端開發 >Python教學 >如何將具有重複鍵的 Python 字典合併到值列表中?

如何將具有重複鍵的 Python 字典合併到值列表中?

DDD
DDD原創
2024-12-10 07:16:16495瀏覽

How Can I Merge Python Dictionaries with Duplicate Keys into Lists of Values?

在 Python 中合併具有重複鍵的字典

在 Python 中,處理多個字典可能具有挑戰性,特別是當需要合併它們時。當字典共享重複的鍵時,會出現一個常見問題,目標是將與這些鍵關聯的所有值收集到一個列表中。

解決方案:defaultdict

為了有效地處理這個問題,一個強大的 Python集合模組中名為 defaultdict 的工具開始發揮作用。它允許為字典中不存在的任何鍵創建預設值(在本例中為空列表)。

考慮以下範例:

d1 = {1: 2, 3: 4}
d2 = {1: 6, 3: 7}

合併這些字典,從匹配的鍵中收集值,我們可以使用defaultdict,如下所示:

from collections import defaultdict

dd = defaultdict(list)

for d in (d1, d2): # loop through all input dictionaries
    for key, value in d.items():
        dd[key].append(value)
    
print(dd) # result: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})

在此程式碼:

  • 我們使用defaultdict(list) 建立一個空的defaultdict。
  • 我們迭代每個輸入字典 d。
  • 對於每個中的每個鍵值對字典中,我們將值附加到與 defaultdict 中的鍵關聯的列表中。
  • 結果是一個 defaultdict,其中鍵代表合併的鍵來自所有字典,值是包含所有對應值的列表。

該解決方案有效地從多個字典中收集與匹配鍵關聯的所有值,提供了一種乾淨且通用的方式來處理重複鍵。

以上是如何將具有重複鍵的 Python 字典合併到值列表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn