質問:
マルチレベル辞書はどのように構築できますかネストされた値のリストが与えられた場合、変数の深さを指定しますか?次のサンプル リストを考えてみましょう:
<code>[A][B1][C1] = 1 [A][B1][C2] = 2 [A][B2] = 3 [D][E][F][G] = 4</code>
必要な出力は、次の構造に似たマルチレベル辞書です:
<code>A --B1 -----C1 = 1 -----C2 = 1 --B2 = 3 D --E ----F ------G = 4</code>
解決策:
defaultdict
モジュールの collections
を使用すると、挿入ステートメントをハードコーディングすることなく、ネストされた辞書を動的に作成できます。 defaultdict
は、既存のキーが見つからない場合にデフォルト値を返します。実装方法は次のとおりです:
<code class="python">from collections import defaultdict # Define a function to create a nested dictionary with any level of depth nested_dict = lambda: defaultdict(nested_dict) # Create the nested dictionary using the nested_dict function nest = nested_dict() # Populate the nested dictionary with the given data nest[0][1][2][3][4][5] = 6 print(nest)</code>
このコードは、キー [0][1][2][3][4][5]
の値が 6 に設定されている、深さ 7 のネストされた辞書を作成します。ネストされた辞書には、次を使用してアクセスできます。同じキー構造なので、さまざまなレベルでのデータの動的な作成と取得が可能です。
以上がネストされたリストを考慮して、可変の深さを持つマルチレベル辞書を構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。