無限にネストされたdefaultdictを作成するにはどうすればよいですか?言い換えれば、defaultdict のデフォルト値を別のdefaultdictに設定することは可能でしょうか?これにより、必要に応じて必要な辞書を自動的に作成する、任意の深さのネスト構造が可能になります。
たとえば、次のコードを考えてみましょう。
x = defaultdict(...stuff...) x[0][1][0] {}
このシナリオでは、x[0] は次のようになります。はdefaultdict、x[0][1]は別のdefaultdict、x[0][1][0]は標準Dictionary.
他のdefaultdictを含むdefaultdictを作成することは可能ですが、標準のdefaultdict引数では直接サポートされていません。ただし、複数レベルのネストされたdefaultdictを許可する簡単な回避策があります。
デフォルト値を別のdefaultdictとして定義する代わりに、デフォルト値をdefaultdictを返すラムダ関数として定義します:
x = defaultdict(lambda: defaultdict(dict))
このコードは 2 レベルのdefaultdictを作成します。ここで、x[0]はdefaultdict、x[0][1]は別のdefaultdictで、値は次のとおりです。
無限レベルのネストの場合は、ラムダ関数にレベルを追加するだけです:
x = defaultdict(lambda: defaultdict(lambda: defaultdict(...)))
この回避策により、任意にネストされたdefaultdictの作成が可能になり、複雑なデータを管理する便利な方法が提供されます。自動価値創造を備えた構造。
以上がPython で無限にネストされたdefaultdictを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。