46
我試圖創建一個OrderedDict對象,但我創建它的時候,比元素都混亂。Python OrderedDict不保留元素順序
這是我做的:
from collections import OrderedDict
od = OrderedDict({(0,0):[2],(0,1):[1,9],(0,2):[1,5,9]})
的元素不停留在爲了我分配
od
OrderedDict([((0, 1), [1, 9]), ((0, 0), [2]), ((0, 2), [1, 5, 9])])
docs.python.org沒有一個例子,我可以」弄清楚爲什麼命令混亂。任何幫助是極大的讚賞。
另外值得注意的是,將名稱/值傳遞給構造函數不足以設置順序。 (OrderedDict([one'= 1,two = 2,three = 3,four = 4)' 'OrderedDict([('four',4),('one ',1),('three',3),('two',2)])' –
@EricSmith實際上,出於同樣的原因,Python中的變量關鍵字args(** kwargs)被存儲爲字典 - 當發生這種情況時,訂單就像以前一樣丟失。請注意,[PEP-468](http://legacy.python.org/dev/peps/pep-0468/)有一個簡單的解決方案 - 使用'OrderedDict'作爲'kwargs',而不是一個功能,但也許有一天。 –
@GarethLatty現在在[python 3.6](https://docs.python.org/3/whatsnew/3.6.html#pep-468-preserving-keyword-argument-order)中實現了PEP-468 – Copperfield