Python 字典遍历顺序是有序的还是无序的?

今天看了《Python 编程从入门到实践》的字典章节,阅读到第88页,第88页内容引用如下:

user_0 = {
    'username':'efermi',
    'first':'enrico',
    'last':'fermi'
}

for key,value in user_0.items():
    print("\nKey:" + key)
    print("Value:" + value)


注意,即便遍历字典时,键-值对 的返回顺序也与存储顺序不同。Python 不关心 键-值对 的存储顺序,而只跟踪键和值之间的关联关系。

书中上述代码的结果如下:

 

Key:last
Value:fermi

Key:first
Value:enrico

Key:username
Value:efermi

这么一看,果然有道理,遍历时 键-值对 的返回顺序还真的与存储顺序不同。

于是自己动手尝试了一下,发现和书中描述的不一样,于是就上网查询了一下,终于找到答案了:

Python 3.6 改写了 dict 的内部算法,因此 3.6 的 dict 是有序的,在此版本之前皆是无序

而恰好《Python 编程从入门到实践》这本书就是用 Python 3.5 版本

关于 Python 3.6 的 dict 修改详细介绍可参考:https://legacy.python.org/dev/peps/pep-0468/

最后:如果我的博文对你有帮助,记得给我点个赞哦~

你可能感兴趣的:(Python)