2012-06-23 47 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对象的方法,如果你需要它有序返回在字典中使用的所有键的列表,以任意顺序(,只适用对其进行排序()函数)。

所以解决这个问题的一种方法是在你“辨别”它们时对键进行排序。

相关问题