您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python的list本質是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python的list本質是什么”吧!
一、利用插入元素的例子詳解list之本質
代碼一: count = 10**5 nums = [] for i in range(count): nums.append(i) nums.reverse() #翻轉功能
代碼二: count = 10**5 nums = [] for i in range(count): nums.insert(0, i)
簡析:兩段代碼的作用都是將“99999,99998,…,0”這串數字填入列表nums,但其實現方式不同。其中,第一段代碼利用循環,先將數字添加到列表nums的尾端,再利用reverse函數翻轉,從而達到目的;第二段代碼則直接利用insert函數,將數字直接添加到列表nums的首端。看似第二段代碼更加便捷,但在實際上,第二段代碼的速度下降了兩個數量級。
</br>
原理:傳統列表(即鏈表)都是通過一系列節點來實現的,除尾節點外的每個節點都有指向下一個節點的指針。而Python中的list不是由相互指向的節點組成,而是一整塊單一連續的內存區塊,即數組。在進行遍歷時,鏈表與數組的效率相差無幾;進行直接訪問時,鏈表需要從頭開始遍歷以尋找需要訪問的元素,而數組則可以通過計算來得到目標元素在內存中的位置;在進行插入時,只要知道插入元素的位置,鏈表的操作成本非常低,而數組則需要移動插入點右邊的所有元素,效率降低了許多。由此可見,上述第二段代碼每次插入元素時都需要移動所有已經插入的元素,效率低下。
感謝各位的閱讀,以上就是“Python的list本質是什么”的內容了,經過本文的學習后,相信大家對Python的list本質是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。