為什么字典排序是非確定性的?我最近從Python 2.7切換到Python 3.3,似乎在Python 2中,字典鍵的排序是任意的但是一致的,在Python 3中,用例如獲得的字典的鍵的排序vars()看起來(lái)是非確定性的。如果我跑:class Test(object): passparameters = vars(Test)print(list(parameters.keys()))在Python 2.7和Python 3.3中,然后:Python 2.7一直給我['__dict__', '__module__', '__weakref__', '__doc__']使用Python 3.3,我可以得到任何隨機(jī)順序 - 例如:['__weakref__', '__module__', '__qualname__', '__doc__', '__dict__']['__doc__', '__dict__', '__qualname__', '__module__', '__weakref__']['__dict__', '__module__', '__qualname__', '__weakref__', '__doc__']['__weakref__', '__doc__', '__qualname__', '__dict__', '__module__']這種非決定論來(lái)自哪里?為什么會(huì)這樣list({str(i): i for i in range(10)}.keys())......在跑步之間保持一致,總是給予['3', '2', '1', '0', '7', '6', '5', '4', '9', '8']......?
為什么字典排序是非確定性的?
12345678_0001
2019-07-23 15:08:05