欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
【Python算法】列表中的 append 比 insert 效率高的實(shí)質(zhì)

  append 與 insert 對比:

1
2
3
4
5
6
7
8
9
10
11
12
# append 操作
>>> count = 10**5
>>> nums = []
>>> for i in range(count):
... nums.append(i)
...
>>> nums.reverse()
# insert 操作
>>> nums = []
>>> for i in range(count):
... nums.insert(0, i)

  Python中的列表并不是傳統意義上的列表,這也是Python中列表的append操作比insert操作高效的根本原因。

  傳統意義上的列表,通常叫做鏈表,是通過(guò)一系列的節點(diǎn)來(lái)實(shí)現的,每個(gè)節點(diǎn)(尾節點(diǎn)除外)都有一個(gè)指向下一個(gè)節點(diǎn)的指針。

1
2
3
4
5
6
7
8
9
class Node:
    def __init__(self,value,next=Node)
        self.value=value
        self.next=next
將節點(diǎn)構造成列表:
>>>L = Node("a",Node("b",Node("c",Node("d"))))
>>>L.next.next.value
'c'

  但是Python中的列表則與此不同。它不是由若干個(gè)獨立的節點(diǎn)相互引用而組成的,而是一整塊單一連續的內存區塊--我們通常稱(chēng)之為數組。這直接導致其與鏈表之間的一些區別。

  盡管兩者在遍歷時(shí)的效率相差無(wú)幾(除了鏈表有一些額外開(kāi)銷(xiāo)),但是如果我們按照既定索引值對某元素進(jìn)行直接訪(fǎng)問(wèn)的話(huà),顯然使用數組會(huì )更加的高效。

  因為在數組中,我們通??梢灾苯佑嬎愠瞿繕嗽卦趦却嬷械奈恢?,并對其進(jìn)行直接訪(fǎng)問(wèn)。而對于鏈表,我們需要從頭開(kāi)始遍歷整個(gè)鏈表。

  對于insert操作來(lái)說(shuō),情況又有所不同。

  • 對于鏈表而言,只要知道了在哪里執行insert操作,其操作成本是非常低的。無(wú)論該鏈表中有多少元素,其操作時(shí)間大致相同。

  • 對于數組而言,每次執行insert操作都需要移動(dòng)插入點(diǎn)右邊所有的元素,甚至在必要時(shí)需要把所有數組元素復制到另外一個(gè)更大的數組中。

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
python如何向數組中添加元素
這8種數據結構,身為python開(kāi)發(fā)的你必須得懂
Python語(yǔ)法必備篇——Python中的 列表 【頂級入門(mén)教程 全面講解】
Python基礎 04----列表
前端程序員學(xué)好算法系列(六)隊列
4300 字Python列表使用總結,用心!
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久