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']]
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP