append 與 insert 對(duì)比:
Python中的列表并不是傳統(tǒng)意義上的列表,這也是Python中列表的append操作比insert操作高效的根本原因。 傳統(tǒng)意義上的列表,通常叫做鏈表,是通過(guò)一系列的節(jié)點(diǎn)來(lái)實(shí)現(xiàn)的,每個(gè)節(jié)點(diǎn)(尾節(jié)點(diǎn)除外)都有一個(gè)指向下一個(gè)節(jié)點(diǎn)的指針。
但是Python中的列表則與此不同。它不是由若干個(gè)獨(dú)立的節(jié)點(diǎn)相互引用而組成的,而是一整塊單一連續(xù)的內(nèi)存區(qū)塊--我們通常稱之為數(shù)組。這直接導(dǎo)致其與鏈表之間的一些區(qū)別。 盡管兩者在遍歷時(shí)的效率相差無(wú)幾(除了鏈表有一些額外開(kāi)銷),但是如果我們按照既定索引值對(duì)某元素進(jìn)行直接訪問(wèn)的話,顯然使用數(shù)組會(huì)更加的高效。 因?yàn)樵跀?shù)組中,我們通常可以直接計(jì)算出目標(biāo)元素在內(nèi)存中的位置,并對(duì)其進(jìn)行直接訪問(wèn)。而對(duì)于鏈表,我們需要從頭開(kāi)始遍歷整個(gè)鏈表。 對(duì)于insert操作來(lái)說(shuō),情況又有所不同。
|
|
來(lái)自: highoo > 《數(shù)據(jù)分析》