欢迎各位小哥哥小姐姐阅读本的文章,对大家学习有帮助,请点赞加关注哦!!!!!!!!!!
您的点赞和关注将是我持续更新的动力呢.^v^
有不懂的问题可以私聊我哦!
前言
如图,为什么输出的不是按Jen, Sarah, Phil, Edward的顺序呢?

大家可以先想想为什么?
思考解答
字典是无序的了,我再具体讲讲为什么无序吧。
1。字典的查找效率很高,代价则是内存开销较大。
对于数值型元素的查找:逐个查找的算法复杂度是O(N);用MergeSort排序+二分法查找的算法复杂度是O(N*log(N));而用字典查找的算法复杂度接近O(1)。(当hash function没有冲突时)。

2。字典是怎么实现高效率查找的。
字典对key值主要做了两个处理:
- 用hash table将key值转换成int
- 新建了一个list,将key转化的int作为作为index,value作为该index下的element。(这就是为什么dict的开销会更大)

3。所以你print出来的顺序其实是hash table映射后的数值的顺序
但是这个hash table取决于很多其他因素,包括编译器版本、字典的增删历史等。所以实质上是non-random的。
可参考:https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。