Python List(Python List)
這篇 Python List 教學將帶你認識 Python 最重要的資料結構:串列(List)。List 是一個有順序、可修改的容器,可以裝任何型別的資料。前面學的變數一次存一個值,List 讓你把一整批資料放在一起處理,搭配迴圈威力倍增。
建立 List
用中括號 [] 建立,元素以逗號分隔:
fruits = ["蘋果", "香蕉", "橘子"]
numbers = [1, 2, 3, 4, 5]
mixed = ["小明", 25, 175.5, True] # 可混合不同型別
empty = [] # 空串列
print(fruits)
print(len(fruits)) # 元素個數
執行輸出:
['蘋果', '香蕉', '橘子']
3
索引取值與修改
與字串相同,索引從 0 開始,負數從尾端數回來。不同的是 List 可以修改:
fruits = ["蘋果", "香蕉", "橘子"]
print(fruits[0]) # 第一個
print(fruits[-1]) # 最後一個
fruits[1] = "芒果" # 修改元素
print(fruits)
執行輸出:
蘋果
橘子
['蘋果', '芒果', '橘子']
常用方法總覽
| 方法 | 說明 | 範例 |
|---|---|---|
append(x) | 在尾端加入元素 | fruits.append("葡萄") |
insert(i, x) | 在索引 i 插入元素 | fruits.insert(0, "草莓") |
remove(x) | 移除第一個值為 x 的元素 | fruits.remove("蘋果") |
pop(i) | 取出並移除索引 i 的元素(預設最後一個) | fruits.pop() |
sort() | 由小到大排序(原地修改) | numbers.sort() |
reverse() | 反轉順序 | numbers.reverse() |
count(x) | 計算 x 出現次數 | numbers.count(3) |
index(x) | 回傳 x 第一次出現的索引 | fruits.index("橘子") |
scores = [80, 95, 60]
scores.append(75) # 尾端加入
print(scores)
scores.insert(0, 100) # 開頭插入
print(scores)
scores.remove(60) # 移除指定值
print(scores)
last = scores.pop() # 取出最後一個
print(last, scores)
scores.sort() # 排序
print(scores)
scores.sort(reverse=True) # 由大到小
print(scores)
執行輸出:
[80, 95, 60, 75]
[100, 80, 95, 60, 75]
[100, 80, 95, 75]
75 [100, 80, 95]
[80, 95, 100]
[100, 95, 80]
用 for 走訪 List
fruits = ["蘋果", "香蕉", "橘子"]
for fruit in fruits:
print(fruit)
# 需要索引時用 enumerate()
for i, fruit in enumerate(fruits, start=1):
print(f"{i}. {fruit}")
執行輸出:
蘋果
香蕉
橘子
1. 蘋果
2. 香蕉
3. 橘子
檢查元素是否存在
用 in 與 not in:
fruits = ["蘋果", "香蕉", "橘子"]
print("香蕉" in fruits)
print("芒果" not in fruits)
執行輸出:
True
True
常見錯誤
1. IndexError: list index out of range
索引超出範圍,例如對 3 個元素的 List 取 fruits[3](最大合法索引是 2)。取最後一個元素用 fruits[-1] 最安全。
2. ValueError: list.remove(x): x not in list
remove() 移除不存在的值。先用 if x in fruits: 檢查再移除。
3. 對 List 使用 = 不是複製
b = a 只是讓兩個名字指向同一個 List,改 b 會連 a 一起變。真正的複製要用 b = a.copy(),細節在下一篇切片會詳細說明。
總結
List 用 [] 建立、可修改、有順序;append、insert、remove、pop、sort 是最常用的五個方法;搭配 for 走訪、in 檢查存在。List 還有一個強大的功能——切片(Slicing),下一篇詳細介紹。