ホームページ >バックエンド開発 >Python チュートリアル >私の Python 辞書は順序付けされていないにもかかわらず、順序付けされているように見えるのはなぜですか?

私の Python 辞書は順序付けされていないにもかかわらず、順序付けされているように見えるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-28 01:43:11709ブラウズ

Why Does My Python Dictionary Appear Ordered Despite Being Unordered?

Python での辞書の順序付け

Python 辞書は順序付けされていないはずなのに、順序付けされているように見えるのはなぜですか?

考えてみましょう次の辞書:

propertyList = {
    "id":           "int",
    "name":         "char(40)",

    "team":         "int",
    "realOwner":    "int",

    "x":            "int",
    "y":            "int",

    "description":  "char(255)",

    "port":         "bool",
    "secret":       "bool",
    "dead":         "bool",
    "nomadic":      "bool",

    "population":   "int",
    "slaves":       "int",
}

で辞書を印刷する場合"n".join(myDict)、予期しない順序が観察されます:

name
nomadic
dead
port
realOwner
secret
slaves
team
y
x
Population
id
description

Python 辞書は確かに順序付けされていませんが、同じ順序が一貫して生成されます。

基本的な実装

古いバージョンの Python では、辞書はハッシュ テーブルとして実装されていました。ハッシュ テーブルは関数を使用してキーを配列内の特定の位置にマップし、その結果、明らかに任意ですが一貫した順序が得られます。

順序付き辞書の実装

その後、Python はその改訂を行いました。挿入順序を保持するための dict 実装。この保証は、Python 3.7 以降で有効になります。したがって、辞書の実装は純粋にハッシュ テーブルに基づいていなくなりましたが、その構築には依然としてハッシュ テーブルが使用されています。

以上が私の Python 辞書は順序付けされていないにもかかわらず、順序付けされているように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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