使用包含重疊鍵的多個字典時,有必要在收集與這些鍵關聯的值時有效地合併它們。本文探討了一種從字典集合中的匹配鍵組合和收集值的解決方案。
給定幾個字典,例如:
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中文網其他相關文章!