列表元素的5種新增方式 效率問題

2022-07-20 16:30:14 字數 1820 閱讀 7965

1、列表元素的增加和刪除

當列表增加和刪除元素時,列表會自動進行記憶體管理,大大減少了程式設計師的負擔。但這個特點涉及列表元素的大量移動,效率較低。除非必要,我們一般只在列表的尾部新增元素或刪除元素,這回大大提高列表的操作效率。

原地修改列表物件,是真正的列表尾部新增新的元素,速度最快,推薦使用。

>>> a = [20,40,50]

king')

>>>a

[20, 40, 50, '

king

']

2、+運算子操作

並不是真正的尾部新增元素,而是建立新的列表物件;將原列表的元素和新列表的元素依次複製到心的列表物件種。這樣,會涉及大量的複製操作,對於操作大量元素不建議使用 。

>>>a

[20, 40, 50, '

king']

>>>id(a)

62798224

>>> a = a+[60]

>>>a

[20, 40, 50, '

king

', 60]

>>>id(a)

67570704

# 通過如上測試,我們發現變數a的位址發生量變化,也就建立了新的列表物件。

3、extend()方法

將目標列表的所有元素新增到本列表的尾部,屬於原地操作,不建立新的列表物件。

>>>a

[20, 40, 50, '

king

', 60]

>>>id(a)

67570704

>>> a.extend([100,200])

>>>id(a)

67570704

>>>a

[20, 40, 50, '

king

', 60, 100, 200]

4、insert() 插入元素

使用insert() 方法可以將指定的元素插入到列表物件的任意指定位置。這樣會讓插入位置後面所有的元素進行移動,會影響處理速度。涉及到大量元素時,盡量避免使用。類似發生這樣移動的函式有remove()、pop()、del() ,他們在刪除非尾部元素時也會發生操作位置後面元素的移動。

>>>a

[20, 40, 50, '

king

', 60, 100, 200]

>>> a.insert(2,345)

>>>a

[20, 40, 345, 50, '

king

', 60, 100, 200]

5、乘法擴充套件

使用乘法擴充套件列表,生成乙個新的列表,新列表元素是原列表元素的多次重複。

>>>a

[20, 40, 345, 50, '

king

', 60, 100, 200]

>>> b = a*3

>>>b

[20, 40, 345, 50, '

king

', 60, 100, 200, 20, 40, 345, 50, '

king

', 60, 100, 200, 20, 40, 345, 50, '

king

', 60, 100, 200]

>>>a

[20, 40, 345, 50, '

king

', 60, 100, 200]

適用於乘法操作的還有:字串、元組。例如:

Python列表元素的5種新增方式以及效率問題

當列表增加和刪除元素時,列表會自動進行記憶體管理,大大減少了程式設計師的負擔。但這 個特點涉及列表元素的大量移動,效率較低。除非必要,我們一般只在列表的尾部新增元素 或刪除元素,這會大大提高列表的操作效率。二 運算子操作 並不是真正的尾部新增元素,而是建立新的列表物件 將原列表的元素和新列表的元素依...

JS陣列新增元素的三種方式

1 push 結尾新增 陣列.push 元素 引數描述 newelement1 必需。要新增到陣列的第乙個元素。newelement2 可選。要新增到陣列的第二個元素。newelementx 可選。可新增多個元素。2 unshift 頭部新增 陣列.unshift 元素 引數描述 newelemen...

Python 之列表新增元素的3種方法

追加單個元素 list crazyit 20,2 print list crazyit 20,2,fkit 二 追加元組 列表等 extend 方法 追加元組中的所有元素 b list a 30 b list.extend 2,3.1 print b list a 30,2,3.1 a list 3...