python - 如何为一个dict字典进行多层级赋值?
ringa_lee
ringa_lee 2017-04-18 10:07:26
0
2
1507
ringa_lee
ringa_lee

ringa_lee

全員に返信(2)
大家讲道理

この構造は自分で実装できます。
次の例では、AutoVivification は dict から継承します

リーリー

AutoVivification は次のように使用できます:

リーリー

出力:

リーリー

さらに、AutoVivification の別の実装方法があります。これは、dict の __missing__ マジック メソッドを直接オーバーロードすることです。延長として考えてください。

リーリー

もう 1 つ、Python 2.5 以降のバージョンでは、よりスケーラブルな dict 型をカスタマイズできる collections.defaultdict 型が追加されました。
ドキュメントには、実装原則は __missing__ メソッドをオーバーロードすることであると記載されています。 AutoVivification は次のように表現することもできます:

リーリー

defaultdict は、最初のパラメータが default_factory である dict 型を構築します。__missing__ が呼び出されるとき、戻り値は、default_factory を使用して構築されます。
defaultdict のその他の例

いいねを押す +0
洪涛

defaultdict パッケージの使用法を添付します:

リーリー

出力:

リーリー

このようにして、望ましい効果を達成できます。

補足:
defaultdict() はデフォルトのパラメータを受け取ります。これは型名またはパラメータなしで呼び出し可能な関数にすることができます
これは非常に便利です

リーリー

出力:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート