Python 中字典的深度合併字典
在處理複雜的資料結構時,通常需要合併多個字典以建立統一的字典表示。當字典包含字典的嵌套結構時,就會出現一個特殊的挑戰,稱為「深度合併」。
為了解決這個挑戰,我們可以利用 Python 中的遞歸方法。以下函數有效地合併字典,同時優雅地處理衝突:
def merge(a: dict, b: dict, path=[]): for key in b: if key in a: if isinstance(a[key], dict) and isinstance(b[key], dict): merge(a[key], b[key], path + [str(key)]) elif a[key] != b[key]: raise Exception('Conflict at ' + '.'.join(path + [str(key)])) else: a[key] = b[key] return a
在值衝突的情況下,該函數將引發異常。
為了說明用法,請考慮以下範例:
dict1 = {1:{'a':{'A'}}, 2:{'b':{'B'}}} dict2 = {2:{'c':{'C'}}, 3:{'d':{'D'}}}
透過使用merge(dict1, dict2),我們可以得到想要的結果:
{1:{'a':{'A'}}, 2:{'b':{'B'},'c':{'C'}}, 3:{'d':{'D'}}}
這種方法可確保有效處理字典內的嵌套,從而實現複雜資料結構的深度合併。
以上是如何在Python中深度合併嵌套字典並處理衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!