在寫程式時,資料不是只有單一數字或字串,往往是一整組、一對一的配對、或無特定順序的集合。Python 提供了四種非常實用的資料結構:list(串列)、dict(字典)、set(集合)和 tuple(元組)。
📋 1. list [串列]
➤ 用法與宣告:
fruits = ["apple", "banana", "cherry"]
print(fruits[1]) # 輸出 banana
➤ 說明:
- 有順序、可重複、可變動
- 使用索引值(從0開始)存取元素,索引值是整數,代表資料在 list 中的位置(與 dict 的 key 不同,dict是一個key對應一個value)
➤ 常見操作:
fruits.append("orange") # 加入單一元素
fruits.extend(["grape", "kiwi"]) # 加入多個元素
fruits[0] = "grape" # 修改元素
fruits.pop() # 移除最後一個
len(fruits) # 串列長度
➤ 擷取片段(切片):
print(fruits[1:3]) # 從索引1到2,輸出 ['banana', 'cherry']
print(fruits[:2]) # 從開頭到索引1,輸出 ['grape', 'banana']
print(fruits[-2:]) # 最後兩個元素
➤ 注意事項:
- 若使用超出範圍的索引,會出現 IndexError
- 可存放不同型態資料(雖然不建議)
🔑 2. dict {字典}
➤ 用法與宣告:
person = {"name": "Dolly", "age": 7}
print(person["name"]) # 輸出 Dolly
➤ 說明:
- 使用 key 對應 value 的結構(無順序),就像名字對應電話號碼,查找速度快。
- 例如:
{"name": "Dolly", "age": 7}
中,"name"
是 key,對應的"Dolly"
是 value。 - key 必須唯一,通常為字串
➤ 常見操作:
person["age"] = 8 # 修改值
person["city"] = "Taipei" # 加入新鍵值
print(person.get("hobby", "無資料")) # 安全取值(避免 KeyError)
print(person.keys()) # 輸出所有 key
print(person.values()) # 輸出所有 value
print(person.items()) # 同時取得 key 與 value
➤ 進階操作:
person.update({"age": 9, "job": "teacher"}) # 同時更新多筆鍵值對
print(person)
del person["city"] # 刪除指定的 key-value
print(person)
➤ 尋訪 dict:
for key in person:
print(key, person[key])
for key, value in person.items():
print(f"{key} 的值是 {value}")
➤ 注意事項:
- 若取用不存在的 key,會出現 KeyError,可用
get()
避免 - 適合用在存放具名欄位或配對資料
update()
不會刪除原本資料,只會覆蓋或新增del
只能刪除已存在的 key,否則會報錯
🔢 3. set {集合}
➤ 用法與宣告:
colors = {"red", "green", "blue"}
➤ 說明:
- 無順序、不重複、可進行集合運算
- 與 dict 不同的是,set 裡面只有值(value),沒有對應的 key,適合用來快速檢查「有沒有某個項目」,或進行交集、聯集等集合邏輯運算
➤ 常見操作:
colors.add("yellow") # 加入元素
colors.remove("green") # 移除元素,若元素不存在會報錯
colors.discard("purple") # 移除元素,若不存在也不會報錯(較安全)
print("red" in colors) # 是否存在
➤ 集合運算:
A = {1, 2, 3}
B = {3, 4, 5}
print(A | B) # 聯集 {1, 2, 3, 4, 5}
print(A & B) # 交集 {3}
print(A - B) # 差集 {1, 2}(出現在 A 但不在 B)
➤ 注意事項:
- 集合內元素不可重複,重複項自動忽略
- 沒有索引順序,無法使用
colors[0]
📦 4. tuple(元組)
➤ 用法與宣告:
point = (3, 4)
print(point[0]) # 輸出 3
➤ 說明:
- 與 list 類似但「不可修改內容」
- 通常用於座標、固定組合資料
➤ 注意事項:
- 建立只有一個元素的 tuple 要加逗號:
(5,)
- 不可更改其內容,適合用來保護資料不被誤改
📊四種資料結構比較表

⚠️ 常見錯誤提醒
list:
- ❌ fruits = fruits.append("apple") → append() 會回傳 None,應直接寫 fruits.append("apple")
- ❌ 索引超出範圍會錯,例如 fruits[100]
dict:
- ❌ 寫成 person.get["name"](錯,應為 person.get("name"))
- ❌ del person.city 應為 del person["city"]
set:
- ❌ 誤用索引 colors[0]
- ❌ remove 不存在的元素會錯,可改用 discard()
tuple:
- ❌ (5) 是整數不是 tuple,應寫成 (5,)
🎯 小練習
🧪 練習1:建立一個學生資料 dict,並印出姓名與年齡
student = {"name": "Emma", "age": 10}
print(student["name"], student["age"])
🧪 練習2:使用 set 過濾重複項目
nums = [1, 2, 2, 3, 3, 3]
unique = set(nums)
print(unique)
📚 第2集總結:
- list、dict、set、tuple 是處理多筆資料的核心工具。
- 選擇正確的資料結構可以讓程式更簡潔與高效。
- dict 與 set 特別適合查找與比對。
➡️ 下一集將介紹流程控制:if
, for
, while
,讓我們的程式能根據條件做出選擇與重複動作!