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
是的,也許你是對的。所以我放棄了我以前的答案。 –