首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python List.append() 方法完整教學:列表末尾新增元素的核心操作

     編輯:更多程式設計知識

append() 是 Python 列表最基本、最常用的新增元素方法,用於在列表末尾加入單一物件。理解其原地修改特性、回傳值行為、與 extend() 的差異,是避免常見 Bug 的關鍵。

語法與參數

list.append(obj)
  • obj:任意型別的物件(數字、字串、列表、字典、自訂物件等)
  • 無型別限制,列表可儲存異質元素

回傳值

回傳 None,直接修改原列表(原地操作),不建立新列表。

基本範例

#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc']
aList.append(2014)
print("Updated List :", aList)
# 輸出:Updated List : [123, 'xyz', 'zara', 'abc', 2014]

核心特性與常見誤區

✅ 正確用法

lst = [1, 2, 3]
lst.append(4)
print(lst)  # [1, 2, 3, 4]

❌ 常見錯誤 1:以為有回傳值

lst = [1, 2, 3]
new_lst = lst.append(4)
print(new_lst)  # None!原列表 lst 已變 [1,2,3,4]

❌ 常見錯誤 2:加入列表時產生巢狀結構

lst = [1, 2, 3]
lst.append([4, 5])
print(lst)  # [1, 2, 3, [4, 5]]  變成巢狀列表!

# 若想展開加入,請用 extend()
lst = [1, 2, 3]
lst.extend([4, 5])
print(lst)  # [1, 2, 3, 4, 5]

append() vs extend() vs insert() 比較

方法位置參數效果範例結果
append(x)末尾單一物件加入一個元素[1,2] + append(3) → [1,2,3]
extend(iter)末尾可迭代物件展開加入多個[1,2] + extend([3,4]) → [1,2,3,4]
insert(i, x)索引 i 前單一物件指定位置插入[1,3] + insert(1,2) → [1,2,3]
+ / +=末尾列表合併列表[1,2] + [3,4] → [1,2,3,4] (新列表)

進階應用場景

1. 迴圈中動態建立列表

# 收集使用者輸入
inputs = []
while True:
    val = input("輸入數字 (q 結束): ")
    if val == 'q':
        break
    inputs.append(int(val))
print(inputs)

2. 當作堆疊使用

stack = []
stack.append(1)  # push
stack.append(2)
stack.append(3)
print(stack.pop())  # 3 (pop)
print(stack.pop())  # 2

3. 累積計算結果

results = []
for i in range(10):
    results.append(i ** 2)
print(results)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

4. 加入複雜物件(字典、自訂類別)

users = []
users.append({"name": "Alice", "age": 30})
users.append({"name": "Bob", "age": 25})
print(users[0]["name"])  # Alice

效能特性

  • 時間複雜度:O(1) 平均,偶爾因擴容為 O(n)
  • 空間複雜度:O(1)
  • CPython 實作採用動態陣列,尾端新增極快
  • 大量新增時建議預估大小或改用 collections.deque

總結

append() 是列表尾端新增單一元素的標準方法,原地修改、回傳 None、參數為單一物件。切記:加入列表會產生巢狀結構,若需展開請用 extend()。掌握這三個核心特性,能避開 90% 的新手 Bug,寫出更穩健的 Python 程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved