Tuple (元組)
2024年11月12日大约 2 分鐘
學習內容:
- 了解 Tuple 是什麼,以及它與 List 的不同之處
- 理解 Tuple 的不可變性
- 學習 Tuple 的基本操作(如索引、切片等)
- 使用常見的 Tuple 方法和函數
- Tuple 的解包(Unpacking)及其應用
什麼是 Tuple (元組)?
Tuple 是一種內建的資料結構,類似於 List,但最大的不同點在於 Tuple 是不可變的,也就是說,創建後不能修改其內容。Tuple 用小括號 ()
來表示,元素之間用逗號 ,
分隔。
範例
fruits = ("apple", "banana", "cherry")
numbers = (1, 2, 3, 4, 5)
mixed = (1, "hello", 3.14, True)
Tuple 的不可變性
Tuple 一旦創建就無法更改,這使得它更安全並且在某些情況下運行速度更快。這意味著不能添加、刪除或更改 Tuple 中的元素。
範例
colors = ("red", "green", "blue")
# 嘗試更改元素會導致錯誤
# colors[0] = "yellow" # 會引發 TypeError
基本操作
索引 (Indexing)
可以像操作 List 一樣使用索引來訪問 Tuple 中的元素。索引從 0 開始,負索引從 -1 開始計算。
animals = ("dog", "cat", "bird")
print(animals[0]) # dog
print(animals[-1]) # bird
切片 (Slicing)
可以使用切片來獲取 Tuple 的一部分,語法與 List 相同。
numbers = (1, 2, 3, 4, 5)
print(numbers[1:4]) # (2, 3, 4)
常見的 Tuple 方法和函數
count()
返回指定元素在 Tuple 中出現的次數。
numbers = (1, 2, 3, 2, 4, 2)
print(numbers.count(2)) # 3
index()
返回指定元素的索引(如果有多個相同元素,返回第一次出現的位置)。
letters = ("a", "b", "c", "a", "d")
print(letters.index("a")) # 0
Tuple 解包 (Unpacking)
可以使用解包將 Tuple 中的元素賦值給多個變數,這使得代碼更簡潔易讀。
範例
point = (4, 5)
# 解包
x, y = point
print(x) # 4
print(y) # 5
忽略多餘的元素
可以使用 *
來忽略多餘的元素:
values = (1, 2, 3, 4, 5)
a, b, *rest = values
print(a) # 1
print(b) # 2
print(rest) # [3, 4, 5] (會被解包成列表)
Tuple 的應用場景
Tuple 通常用於以下場景:
- 當數據不應被修改時:例如,座標點(x, y)、顏色的 RGB 值等。
- 用於字典的鍵:Tuple 可以作為字典的鍵,因為它是不可變的(而 List 不行)。
練習
- 創建一個 Tuple,包含你最喜歡的 3 個水果,並使用索引訪問每個水果。
- 編寫一個程式,創建一個包含數字的 Tuple,並找出其中最大和最小的數值。
- 使用解包將一個包含 3 個元素的 Tuple 拆分成 3 個變數,並打印每個變數的值。