首頁 >後端開發 >Python教學 >如何有效率地合併重複鍵的字典並收集它們的值?

如何有效率地合併重複鍵的字典並收集它們的值?

Patricia Arquette
Patricia Arquette原創
2024-12-24 15:29:12694瀏覽

How Can I Efficiently Merge Dictionaries with Duplicate Keys and Collect Their Values?

合併重複鍵的字典

使用包含重疊鍵的多個字典時,有必要在收集與這些鍵關聯的值時有效地合併它們。本文探討了一種從字典集合中的匹配鍵組合和收集值的解決方案。

問題陳述

給定幾個字典,例如:

d1 = {key1: x1, key2: y1}
d2 = {key1: x2, key2: y2}

目標是獲得合併結果作為新字典,其中每個鍵保存原始值的元組字典:

d = {key1: (x1, x2), key2: (y1, y2)}

此解法利用collections.defaultdict建立一個字典,其預設值作為可變列表。這允許累積每個鍵的值:

from collections import defaultdict

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

dd = defaultdict(list)

for d in (d1, d2): # Input dictionaries can be iterated over here
    for key, value in d.items():
        dd[key].append(value)

最終合併的字典 dd 包含映射到輸入字典中的值列表的每個鍵。

以上是如何有效率地合併重複鍵的字典並收集它們的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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