2012-06-23 74 views

回答

3

無法保證dict中按鍵的順序。

The documentation says:

最好是認爲字典作爲無序組關鍵的:值對,該密鑰是唯一的要求(一個字典之內)...

字典對象的keys()方法返回字典中使用的所有鍵的列表,任意順序(如果您想要它排序,只需將sorted()函數應用於它)。

Python 2.7+和3.1+的OrderedDict class in collectionsdescribed by PEP 372,它確實如你所願。它記得添加密鑰的順序:

>>> from collections import OrderedDict 
>>> od = OrderedDict() 
>>> od[1] = "one" 
>>> od[2] = "two" 
>>> od[3] = "three" 
>>> od.keys() 
[1, 2, 3] 
5

號根據the documentation

鍵和值指的是這個非隨機的,不同的Python實現不同而不同,取決於插入和刪除的字典的歷史任意順序列出。

1

編號至少在cpython中(並且很可能在每隔一個實現中)you definitely can't。如果你想要保證訂單,請檢查odict,這確保訂單。

1

不,從一天到下一天。 keys()將以任意順序(儘管我認爲它們可能在實例的生命週期中是一致的,但這對你的菜單不起作用)。

Python3已下令字典:collections.OrderedDict documentation

0

你可能想嘗試像字典或對象的數組。陣列是有序的。菜單項的文本將位於數組或對象的某個字段中。

1

python docs

鍵()Dictionary對象的方法,如果你需要它有序返回在字典中使用的所有鍵的列表,以任意順序(,只適用對其進行排序()函數)。

所以解決這個問題的一種方法是在你「辨別」它們時對鍵進行排序。

相關問題