python从小到大的顺序输出_「小白专栏」Python中使用for循环,为什么输出结果不是按顺序?...
生活随笔
收集整理的這篇文章主要介紹了
python从小到大的顺序输出_「小白专栏」Python中使用for循环,为什么输出结果不是按顺序?...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
歡迎各位小哥哥小姐姐閱讀本的文章,對大家學習有幫助,請點贊加關注哦!!!!!!!!!!
您的點贊和關注將是我持續更新的動力呢.^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”即可領取。
總結
以上是生活随笔為你收集整理的python从小到大的顺序输出_「小白专栏」Python中使用for循环,为什么输出结果不是按顺序?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5控制gif速度,gif加速软件
- 下一篇: c++全局类对象_C++ 类在内存中的存