顺序循环通过Python字典给出问题

ver*_*ude -1 python associative-array

可能重复:
python以什么顺序显示字典键?

有一个非常奇怪的Python问题,我试图回答(在SO但看起来像作者删除它).这让我头疼,我似乎无法向自己解释这可能是造成这种浮躁现象背后的原因.我有一个Python字典(关联数组),我初始化如下.

d = {"word1": 1, "word2": 2, "word3": 3}
Run Code Online (Sandbox Code Playgroud)

并使用for..in构造循环它,其中我打印由空格分隔的"d"键. 预期输出:word1 word2 word3
实际输出:word1 word3 word2

然后我试着打印"d"作为

 print d 

产量

{'word1': 1, 'word3': 3, 'word2': 2}

我正在扫描在线Python文档,关于SO的现有问卷,博客,但完全没有找出原因.我在这里错过了什么吗?此外,对所有那些对这个问题进行投票的人请求详细说明原因.

干杯.:-)

NPE*_*NPE 5

Python dict不保证其密钥的任何特定顺序.

collections.OrderedDict 保留其键的插入顺序.