ホームページ  >  記事  >  バックエンド開発  >  特定の値を保持しながら、深さが可変のネストされた辞書を更新するにはどうすればよいですか?

特定の値を保持しながら、深さが可変のネストされた辞書を更新するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-08 03:31:01337ブラウズ

How to Update Nested Dictionaries of Variable Depth While Preserving Specific Values?

可変深さのネストされた辞書の更新

ネストされた辞書 (dictionary1) を別の辞書の内容で更新しようとするとジレンマに遭遇します入れ子構造内の特定の値を保持しながら (更新)。具体的には、「levelA」値を上書きせずに、dictionary1 の「level2」キーを更新したいとします。

この課題に対処するために、再帰的ソリューションが提案されています。次の Python コードは、このアプローチを実装しています。

def merge_dicts(dict1, dict2):
    for key in dict2:
        if key in dict1 and isinstance(dict1[key], dict) and isinstance(dict2[key], dict):
            merge_dicts(dict1[key], dict2[key])
        else:
            dict1[key] = dict2[key]

この関数は、両方の辞書を再帰的に走査し、次のルールに基づいて値を更新します。

  • 両方のキーが両方の辞書に存在し、両方のキーが存在する場合辞書自体を呼び出すと、関数はそれ自体を再帰的に呼び出し、ネストされた辞書をマージします。
  • それ以外の場合、dict2 の値が dict1 に割り当てられます。

この再帰的なアプローチを利用すると、ネストされた辞書を変更できます。特定の値を保持しながら、さまざまな深さの辞書を作成します。

以上が特定の値を保持しながら、深さが可変のネストされた辞書を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。