python3.5のディクショナリに格納されているオブジェクトの順序は、インタプリタの実行によって変化しますが、同じインタプリタインスタンスの場合は同じです。なぜPython辞書の順序が変わるのですか?
$ python3 <(printf 'print({"a": 1, "b": 2})\nprint({"a": 1, "b": 2})\nprint({"a": 1, "b": 2})\nprint({"a": 1, "b": 2})')
{'b': 2, 'a': 1}
{'b': 2, 'a': 1}
{'b': 2, 'a': 1}
{'b': 2, 'a': 1}
$ python3 <(printf 'print({"a": 1, "b": 2})\nprint({"a": 1, "b": 2})\nprint({"a": 1, "b": 2})\nprint({"a": 1, "b": 2})')
{'a': 1, 'b': 2}
{'a': 1, 'b': 2}
{'a': 1, 'b': 2}
{'a': 1, 'b': 2}
私はいつも注文がキーのハッシュに基づいていると思っていました。なぜPythonの異なる実行間で順序が異なりますか?
この質問に対する答えはそこに受け入れられた回答に脇に埋もれているように見えますが、私は質問が同じことを求めているとは思わない。 – Tobin
はい、おそらくあなたは正しいです。だから私は以前の答えを元に戻しています。 –