謎の「凍結辞書」を公開
Python の辞書は、データを保存するための多彩な方法を提供します。ただし、不変バージョンの辞書が必要な状況が発生する可能性があります。 「凍結辞書」という仮説的な概念を入力します。
凍結セットがセットの不変バージョンであり、タプルがリストの不変バージョンであるのと同じように、凍結辞書は不変の対応物を提供します。可変辞書。キーと値の機能を保持し、ハッシュ可能性を提供し、反復、キー アクセス、等価性チェックなどの一般的な操作をサポートする必要があります。
Python には組み込みの frozendict 型が存在しないため、開発者は代替ソリューションを模索してきました。 1 つのアプローチには、回答で提供されているコードで例示されているように、カスタム ラッパー クラスを作成することが含まれます。
このラッパー クラスは、辞書の動作を模倣し、反復、項目取得、ハッシュのメソッドを実装します。ハッシュ関数にはすべてのキーと値のペアが組み込まれており、一貫したオブジェクト比較が保証されます。
ラッパーを使用すると、通常の辞書と同様に、凍結された辞書を作成して利用できます:
>>> x = FrozenDict(a=1, b=2)
>>> y = FrozenDict(a=1, b=2)
>>> x is y
False
>>> x == y
True
オブジェクトは不変性とハッシュ可能性の両方を示し、効率的な検索と保存を可能にします。コード例で示されているように、他の辞書のキーとして比較して使用することができ、その実用性を示しています。
Python のコア ライブラリにはネイティブに存在しませんが、凍結された辞書の概念はカスタム ラッパーを通じて実現できます。クラスを開発者に提供し、変更可能な辞書に代わる便利で不変な代替手段を提供します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3