無限レベルの再帰的defaultdictを作成する方法
Pythonのdefaultdictは、ネストされた辞書の作成に使用できる多用途のデータ構造です。ただし、デフォルトでは、defaultdict は単一レベルのネストのみを提供します。内部のdefaultdictのデフォルトファクトリとして動作し、無限レベルの再帰構造を効果的に作成するdefaultdictを作成する方法はありますか?
元の質問は次の動作を実現しようとしました:
x = defaultdict(...stuff...) x[0][1][0] # Should return an empty dictionary {}
ネイティブのdefaultdict引数のみを使用して、無限にネストされた再帰的defaultdictを作成することはできません。一般的な回避策は、ラムダ関数を利用することです。
x = defaultdict(lambda: defaultdict(dict))
このアプローチでは、欠落しているキーにアクセスするときに新しいdefaultdictを生成するdefaultdictが作成されます。これにより、実質的に無限レベルのネストが提供されます。
ラムダベースのアプローチの利点:
注:
ラムダを使用した無限にネストされた defaultdict には次の特性があります:
以上がPython で無限にネストされたdefaultdictを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。