ホームページ >バックエンド開発 >Python チュートリアル >Python でネストされた辞書を深くマージし、競合を処理するにはどうすればよいですか?
Python での辞書のディープマージ
複雑なデータ構造を扱う場合、多くの場合、複数の辞書をマージして統合された辞書を作成する必要があります。表現。辞書に「ディープ マージ」と呼ばれる、辞書の入れ子構造が含まれている場合、特別な課題が 1 つ発生します。
この課題に取り組むには、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) を使用すると、必要な結果を取得できます。 result:
{1:{'a':{'A'}}, 2:{'b':{'B'},'c':{'C'}}, 3:{'d':{'D'}}}
このアプローチにより、ディクショナリ内のネストが効率的に処理され、複雑なデータ構造の深いマージが可能になります。
以上がPython でネストされた辞書を深くマージし、競合を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。