ホームページ  >  記事  >  バックエンド開発  >  3.7 より前のバージョンでは、Python は辞書キーの順序をどのように処理していましたか?

3.7 より前のバージョンでは、Python は辞書キーの順序をどのように処理していましたか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-11 17:48:02888ブラウズ

How did Python handle dictionary key order in versions before 3.7?

以前の Python バージョンでの辞書内のキーの順序

3.7 より前の Python バージョンでkeys() メソッドを使用して辞書のキーを取得する場合、返されるリスト内のキーは任意に見える可能性があります。この予測不可能性は、Python が以前のバージョンで辞書を処理した方法に起因しています。

Python 3.7

Python 3.7 以降、辞書はデフォルトで挿入順序を維持します。これは、keys() 出力リスト内のキーが辞書に挿入された順序と一致することを意味します。

Python 3.6 (CPython)

Python 3.6 (特に CPython 実装) )、辞書もデフォルトで挿入オーダーを保存します。ただし、これは実装の詳細とみなされ、さまざまな Python 実装間での信頼性は保証されません。

Python >=2.7 および

Python のバージョン 2.7 から 3.6 の場合、 Keys() リスト内のキーの順序はハッシュ関数によって決定されます。このハッシュ関数は安定していることが保証されていないため、同じ入力データであってもキーの順序が実行ごとに異なる場合があります。

これらの以前のバージョンの Python で挿入順序を保証するには、コレクションを使用する必要があります。 OrderedDict クラス。このクラスは、キーが挿入された順序で取得されることを保証します:

import collections

d = collections.OrderedDict({'a': 0, 'b': 1, 'c': 2})
l = d.keys()

print(l)  # Output: ['a', 'b', 'c']

以上が3.7 より前のバージョンでは、Python は辞書キーの順序をどのように処理していましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。