python - 我可以可靠地使用 python 字典键方法生成的列表索引吗?

标签 python python-2.7 dictionary key

假设我有这本字典:

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

根据 Python 文档,

The keys() method of a dictionary object returns a list of all the keys used in the dictionary, in arbitrary order

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

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

我的问题是 .keys() 方法生成的键列表(上面)在我每次调用它时是否具有相同的顺序?我试过像这样使用 for 循环:

for i in range(100):
    print mydict.keys()

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

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

最佳答案

在使用字典时,你不应该依赖于排序。即使您对其进行了 10 亿次测试并且它看起来 是同质的,但规范中没有任何内容表明它是同质的,因此可能会有一些隐藏的代码说“每个满月开始在偶数日,更改顺序”。

如果你想依赖排序,那么使用OrderedDict from collections .

关于python - 我可以可靠地使用 python 字典键方法生成的列表索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531421/

相关文章:

java - 这种类似 map 的结构是否作为某些标准集合的一部分存在?

java - 解析文件以制作游戏 map 时出现 NullPointerException

python - TensorFlow 数据集映射函数中的随机性

python-2.7 - NoSuchModuleError : Can't load plugin: sqlalchemy. 方言 :redshift. psycopg2

image - 如何找到图像的位深度

python - Ubuntu - 找不到适用于 python2 的 PySide 模块,但适用于 python3

javascript - 在map.arc()中循环Json对象

python - 将值连接到数据框

python - 将 bigquery 连接到意外项目

python - 我如何将 Subprocess.popen() 与 pyinstaller 一起使用?