辞書内のキー/値の順序の維持
Python では、バージョン 3.6 以降、辞書は本質的に挿入順序を維持します。次のように辞書を宣言すると、
d = {'ac': 33, 'gw': 20, 'ap': 102, 'za': 321, 'bs': 10}
結果の辞書では、宣言された順序でキーが保持されます。この動作は、キーの順序がランダムだった以前の Python バージョンとは異なります。
内部では、この順序の保持は、スパース ハッシュ テーブルと配列を利用してキーと値のペアを格納する最適化された実装によって実現されています。キーは基本的に、追加された順序で配列に格納されます。
Python 3.6 では順序保持が実装の詳細と考えられていましたが、Python 3.7 ではこれが言語仕様に昇格されています。その結果、バージョン 3.7 以降と互換性のあるすべての Python 実装は、辞書内の順序を維持する必要があります。この保証は逆反復にも拡張されており、これは Python 3.8 以降でサポートされています。
順序保持辞書の導入にもかかわらず、コレクション モジュールの collections.OrderedDict() クラスは特定のシナリオで引き続き役立ちます。これは、可逆性や、move_to_end() メソッドを使用してキーを並べ替える機能などの追加機能を提供します。
以上がPython は辞書内のキーの順序をどのように保証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。