我可以可靠地使用python dictionary key方法生成的列表索引吗?

Chr*_*ung 2 python dictionary key python-2.7

假设我有这本词典:

mydict = {'1': ['a', 'b', 'c'], 
          '2': ['d', 'e', 'f'], 
          '3': ['g', 'h', 'i'], 
          '4': ['j', 'k', 'l'], 
          '5': ['m', 'n', 'o']}
Run Code Online (Sandbox Code Playgroud)

根据Python文档,

字典对象的keys()方法以任意顺序返回字典中使用的所有键的列表

当我调用mydict.keys()方法时,它会给我一个mydict没有任何特定顺序的键列表,如下所示:

['1','3','2','5','4']

我的问题是,.keys()每次调用方法生成的密钥列表(上面)都有相同的顺序吗?我尝试使用for循环这样:

for i in range(100):
    print mydict.keys()
Run Code Online (Sandbox Code Playgroud)

在我看来,结果列表始终具有相同的顺序.但我只想确认没有隐藏的情况会改变输出列表的顺序.

换句话说,如果我使用mydict.keys()[0],我每次都会获得相同的项目吗?

zmo*_*zmo 8

使用词典时,不应该依赖于订购.即使你测试它10亿次并且它看起来是同质的,但规范中没有任何内容表明它是,因此可能有一些隐藏的代码说" 每个满月开始于平日,改变顺序 ".

如果你想依靠排序,然后使用OrderedDictcollections.