Python では「凍結された辞書」は可能ですか?
「凍結された辞書」の概念は、Python 内で議論のトピックとなっています。 Python コミュニティ。 Python には組み込みの Frozendict が提供されていませんが、不変でハッシュ可能な辞書の必要性に対処するためのソリューションがいくつか登場しています。
Frozen dict が必要になる一般的な理由の 1 つは、未知の引数を使用した関数呼び出しをメモ化することです。一般的なアプローチには、ハッシュ テーブル検索のソートの安定性に依存して、tuple(sorted(kwargs.items())) を使用して引数をタプルに変換することが含まれます。
より包括的なアプローチについては、次の FrozenDict クラスを検討してください。
<code class="python">import collections class FrozenDict(collections.Mapping): ...</code>
このクラスは、反復、長さの決定、項目の取得、およびハッシュ計算のメソッドを提供し、標準の辞書のように動作し、ハッシュをサポートします。
実際には、FrozenDict は効率的に動作します。 :
<code class="python">x = FrozenDict(a=1, b=2) y = FrozenDict(a=1, b=2) print(x is y, x == y, x == {'a': 1, 'b': 2}) d = {x: 'foo'} print(d[y]) # 'foo'</code>
カスタム実装を提供することにより、FrozenDict は Python で不変でハッシュ可能な辞書を可能にし、オブジェクト処理とメモリ最適化の可能性を拡張します。
以上がPython で辞書をフリーズできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。