Python 中列表的 append 和 + 運算子的工作原理有什麼區別?


在本文中,我們將瞭解 append列表 中的加號運算子之間的區別。

  • append() 方法 用於透過使用 修改器() 方法 向列表中新增元素。

  • '+' 運算子用於建立一個新的列表,該列表具有容納一個更多元素的容量。

+ 運算子在處理列表時的行為

Python 使用 '+' 運算子訪問第一個列表的每個元素。當使用 '+' 符號時,會生成一個新的列表,該列表具有容納一個更多元素的容量。然後必須將舊列表的元素複製到新列表中,並且必須在新列表的末尾插入新元素。

示例

在此示例中,我們將看到在 Python 中使用 + 運算子向列表新增元素。

list =[] n = 10 for i in range(n): list = list+[i] print(list)

輸出

以上程式碼的輸出如下所示。

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

使用 + 運算子向列表新增元素的複雜度

對於每次迭代,都必須從原始列表中複製“i”個元素以構建新列表。假設訪問列表中元素所需的時間是恆定的。因此,要計算將 n 個條目追加到 Python 列表(即示例列表)所需的複雜度或時間,我們將對所有列表訪問進行加總,並乘以訪問和儲存列表元素所需的時間。

要計算訪問和儲存操作的總數,首先計算首次追加元素時複製列表的訪問和儲存操作。這是一個已克隆的片段。第二次追加需要兩次複製操作。第三次追加需要三次複製操作。到目前為止,我們已經複製了以下數量的列表元素。因此,時間複雜度 = O(n^2)。

append() 方法在處理列表時的行為

使用 .append() 技術,這是一種節省時間的方法:列表上的 .append() 方法告訴程式碼使用修改器方法向列表中新增一個更多成員。

示例

此示例說明如何使用 append() 方法。

list =[] n = 10 for i in range(n): list.append(i) print(list)

輸出

以上程式碼的輸出如下所示。

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

事實證明,使用 .append() 方法在 Python 中向已存在的列表新增一個額外條目非常高效。向列表中新增新專案是一個 O(1) 操作。因此,追加 n 個元素的總複雜度為 O。(1)。

append 和 + 運算子之間的區別

當使用 '+' 運算子組合兩個列表時,它會在 Python 中建立一個新列表,原始物件不會被修改。另一方面,使用 extend 和 append 等方法,我們會就地新增列表,即修改原始物件。此外,使用 append 將列表作為物件插入,而 '+' 只是連線兩個列表。

示例

以下示例演示了列表中 + 運算子和 append 方法之間的區別。

list1 = [1, 2, 3] list2 = ['a', 'b'] list3 = list1 + list2 print("Using + operator: ") print(list3) list1.append(list2) print("Using append method: ") print(list1)

輸出

以上程式碼的輸出如下所示。

Using + operator:
[1, 2, 3, 'a', 'b']
Using append method:
[1, 2, 3, ['a', 'b']]

更新於: 2023-11-03

3K+ 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告