Python 3.6 では辞書は順序付けされていますか?
Python 3.6 では、CPython 実装の辞書は挿入順序になっており、順序が保持されます。挿入されたアイテムの数。ただし、この動作は実装の詳細とみなされ、依存すべきではありません。
Python 3.7 での保証された挿入順序
Python 3.7 では、辞書の挿入順序は保証された言語機能。これは、準拠するすべての Python 実装が挿入順辞書を提供する必要があることを意味します。
挿入順によるパフォーマンスの向上
Python 3.6 の新しい辞書実装は、2 つの要素を維持することで挿入順を実現します。 arrays:
この設計では、必要なエントリのみを保存し、インデックスの疎な配列を使用することでメモリのオーバーヘッドを削減します。 。以前の実装では、キーと値のエントリの疎な配列が割り当てられていたため、空のスペースが生じていました。
データ構造の視覚化
たとえば、辞書 { 'timmy': ' red', 'barry': 'green', 'guido': 'blue' } が格納されます例:
indices = [None, 1, None, None, None, 0, None, 2] entries = [[-9092791511155847987, 'timmy', 'red'], [-8522787127447073495, 'barry', 'green'], [-6480567542315338377, 'guido', 'blue']]
古い設計では、衝突を最小限に抑えるために多数の空きスペースがありました。新しいアプローチでは、スパース性をインデックス配列に移動することでメモリ使用量が削減されます。
結論として、Python 3.6 辞書の挿入順序はメモリ効率を向上させ、Python 実装全体で辞書の信頼性を高める大幅な改善です。
以上がPython 辞書は 3.6 で挿入順序を維持することが保証されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。