列表的操作
## Python 列表是內建類別
在 Python 中,列表(`list`)不只是存放多個資料的容器,也是 Python 內建的類別(class)。因此,我們可以建立列表物件,並使用它所提供的方法來操作資料。
```python
numbers = [10, 20, 30]
print(type(numbers))
# <class 'list'>
```
上述 `numbers` 是一個 `list` 類別的物件。列表具有以下特性:
- 可以儲存多個資料
- 資料可以是不同型別
- 有順序,索引從 `0` 開始
- 可以修改內容,因此列表是可變(mutable)物件
- 可以有重複元素
```python
items = ["apple", 100, True]
print(items[0]) # apple
items[1] = 120 # 修改元素
```
## 常見列表方法
| 方法 | 說明 | 範例 |
|---|---|---|
| `append(x)` | 在列表尾端加入一個元素 | `data.append(5)` |
| `extend(iterable)` | 將另一個可迭代物件的元素逐一加入 | `data.extend([6, 7])` |
| `insert(i, x)` | 在指定索引位置插入元素 | `data.insert(1, 99)` |
| `remove(x)` | 移除第一個符合的元素 | `data.remove(5)` |
| `pop([i])` | 移除並回傳指定位置元素,省略索引時移除最後一個 | `last = data.pop()` |
| `clear()` | 清空列表 | `data.clear()` |
| `index(x)` | 找出元素第一次出現的索引 | `data.index(10)` |
| `count(x)` | 計算元素出現次數 | `data.count(10)` |
| `sort()` | 由小到大排序,直接修改原列表 | `data.sort()` |
| `reverse()` | 反轉列表,直接修改原列表 | `data.reverse()` |
| `copy()` | 建立列表的淺層複製 | `new_data = data.copy()` |
另外,`len()`、`max()`、`min()`、`sum()` 是內建函式,不是列表方法:
```python
scores = [80, 95, 72]
print(len(scores)) # 3
print(sum(scores)) # 247
```
---
## 實務範例一:購物車功能
購物車通常需要加入商品、移除商品,以及計算商品數量。
```python
cart = []
# 加入商品
cart.append("鍵盤")
cart.append("滑鼠")
cart.extend(["耳機", "USB 線"])
print(cart)
# ['鍵盤', '滑鼠', '耳機', 'USB 線']
# 移除商品
cart.remove("USB 線")
# 取出並移除最後一項商品
last_item = cart.pop()
print("移除的商品:", last_item)
print("目前購物車:", cart)
```
這個例子使用了:
- `append()`:一次加入一項商品
- `extend()`:一次加入多項商品
- `remove()`:依照內容移除商品
- `pop()`:取出並移除最後一項商品
---
## 實務範例二:整理考試成績
假設要整理成績,找出最高分、最低分,並排序。
```python
scores = [78, 92, 65, 88, 92, 74]
# 複製一份,避免改變原始成績順序
sorted_scores = scores.copy()
sorted_scores.sort(reverse=True)
print("原始成績:", scores)
print("由高到低:", sorted_scores)
print("最高分:", max(scores))
print("最低分:", min(scores))
print("92 分的人數:", scores.count(92))
```
輸出可能為:
```text
原始成績: [78, 92, 65, 88, 92, 74]
由高到低: [92, 92, 88, 78, 74, 65]
最高分: 92
最低分: 65
92 分的人數: 2
```
這個例子說明:
- `copy()`:保留原始列表
- `sort(reverse=True)`:由高到低排序
- `max()`、`min()`:取得最大值與最小值
- `count()`:計算特定成績出現次數
總結來說,列表是 Python 內建的 `list` 類別,列表方法則是這個類別提供給物件使用的操作功能。熟悉這些方法,可以有效處理購物車、成績、資料清單等常見問題。
相關學習地圖、教學課程
Python 資料工程
Python 後端工程、資料庫