今天看了《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/
最后:如果我的博文对你有帮助,记得给我点个赞哦~