ホームページ > バックエンド開発 > Python チュートリアル > ネストされたリストを考慮して、可変の深さを持つマルチレベル辞書を構築するにはどうすればよいですか?

ネストされたリストを考慮して、可変の深さを持つマルチレベル辞書を構築するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-17 11:10:30
オリジナル
388 人が閲覧しました

How to Construct a Multi-Level Dictionary with Variable Depth Given a Nested List?

さまざまな深さのマルチレベル辞書の構築

質問:

マルチレベル辞書はどのように構築できますかネストされた値のリストが与えられた場合、変数の深さを指定しますか?次のサンプル リストを考えてみましょう:

1

2

3

4

<code>[A][B1][C1] = 1

[A][B1][C2] = 2

[A][B2] = 3

[D][E][F][G] = 4</code>

ログイン後にコピー

必要な出力は、次の構造に似たマルチレベル辞書です:

1

2

3

4

5

6

7

8

9

<code>A

--B1

-----C1 = 1

-----C2 = 1

--B2 = 3

D

--E

----F

------G = 4</code>

ログイン後にコピー

解決策:

defaultdict モジュールの collections を使用すると、挿入ステートメントをハードコーディングすることなく、ネストされた辞書を動的に作成できます。 defaultdict は、既存のキーが見つからない場合にデフォルト値を返します。実装方法は次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

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)

ログイン後にコピー

このコードは、キー [0][1][2][3][4][5] の値が 6 に設定されている、深さ 7 のネストされた辞書を作成します。ネストされた辞書には、次を使用してアクセスできます。同じキー構造なので、さまざまなレベルでのデータの動的な作成と取得が可能です。

以上がネストされたリストを考慮して、可変の深さを持つマルチレベル辞書を構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート