Python 3.6 辞書は順序付けされていますか?
Python バージョン 3.6 以降では、辞書は要素の挿入順序を維持します。この動作は「挿入順序」として知られています。高度な順序関連機能を提供する OrderedDict とは異なり、辞書は要素の挿入順序のみを保持します。
Python 3.6 が順序を維持しながら辞書のパフォーマンスを強化する方法
Python 3.6辞書の実装では、挿入を維持しながらメモリ効率に対処するためにデュアル配列アプローチを採用しています。 order.
このアプローチでは、以前の実装の場合のように、まばらに配置された配列の必要性が回避されます。代わりに、必要なエントリとそのインデックスのみを保存するため、メモリ使用量がよりコンパクトになります。
視覚的表現:
次の辞書を考えてみましょう:
d = {'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 辞書は順序付けされていますか? これはパフォーマンスにどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。