前言
Python 是一種因其簡潔語法與高度可讀性而廣泛使用的程式語言。無論在資料分析、網站開發,甚至是人工智慧領域中,Python 都扮演著重要角色。
在程式設計中,資料結構對於程式的效率與可維護性有著關鍵影響。其中,Tuple(元組) 是 Python 中常見的資料型態之一,並經常被使用。
本文將聚焦在 Python 中如何從 Tuple 取出元素,並以容易理解的方式為初學者詳細說明。同時,也會介紹 Tuple 的基本定義方式、實際的取值技巧,與 List(列表)之間的差異。
什麼是 Tuple?
首先,讓我們一起來了解 Tuple 的基本概念。
Tuple 的特點
在 Python 中,Tuple 是一種可以將多個資料集合成一個單位來處理的資料型態。其主要特點如下:
- 不可變(Immutable)
Tuple 一旦建立後,其內容無法更改。這是 Tuple 最大的特點之一。
my_tuple = (1, 2, 3)
# 下列操作會產生錯誤
my_tuple[0] = 10
- 以逗號分隔元素
Tuple 使用括號()
來建立,但實際上是以逗號來分隔各個元素。
my_tuple = (1, 2, 3, 4)
print(my_tuple)
- 與 List 的差異
List 是可變的(Mutable),而 Tuple 是不可變的(Immutable)。
使用 Tuple 的優點
Tuple 主要適用於以下幾種情境:
- 當資料不可變時
如果資料不應該被修改,推薦使用 Tuple 而非 List。
例如:座標資料或常數值。 - 用作 Dictionary 的鍵
Tuple 是不可變的,因此可作為 Dictionary(字典)的鍵值。
coordinates = {(0, 0): "原點", (1, 2): "A 點"}
print(coordinates[(0, 0)]) # 輸出: 原點
- 記憶體效率高
與 List 相比,Tuple 更輕量且能節省記憶體。
本文將帶你學習的內容
本篇文章將依序介紹以下主題:
- 如何定義 Tuple
- 從 Tuple 中取出元素的基本方法(索引、切片)
- 使用 Unpacking(解包) 的高效取值技巧
- Tuple 的實際應用場景
掌握 Python 中的 Tuple 使用方式後,你將能寫出更簡潔且易於維護的程式碼。那麼,讓我們從下一個章節開始深入了解吧!

Python Tuple 的基本與定義方法
本章節將介紹在 Python 中如何定義 Tuple 以及其基本操作。只要先理解 Tuple 的基礎概念,接下來學習「如何取出元素」會更加順利。
Tuple 的定義方法
在 Python 中,可以使用括號 ()
來定義 Tuple。每個元素之間需以逗號 ,
分隔。
基本的 Tuple 定義範例
# 定義一個空的 Tuple
empty_tuple = ()
print(empty_tuple) # 輸出: ()
# 含有多個元素的 Tuple
my_tuple = (1, 2, 3, 4, 5)
print(my_tuple) # 輸出: (1, 2, 3, 4, 5)
# 含有不同資料型態的 Tuple
mixed_tuple = (1, "hello", 3.14)
print(mixed_tuple) # 輸出: (1, 'hello', 3.14)
定義僅含一個元素的 Tuple 時的注意事項
定義只有一個元素的 Tuple 時,逗號 ,
是必要的。即使只有一個值,也不能省略逗號。
錯誤示範
single_element = (1) # 這不是 Tuple,而是整數
print(type(single_element)) # 輸出: <class 'int'>
正確示範
single_element = (1,) # 加上逗號才是 Tuple
print(type(single_element)) # 輸出: <class 'tuple'>
省略括號的 Tuple 定義方式
其實在定義 Tuple 時,可以省略括號 ()
。只要有逗號,Python 就會將其視為 Tuple。
省略括號的範例
my_tuple = 1, 2, 3 # 沒有加括號也可以
print(my_tuple) # 輸出: (1, 2, 3)
print(type(my_tuple)) # 輸出: <class 'tuple'>
注意:
雖然可以省略括號,但為了提高程式的可讀性,還是建議使用括號來定義 Tuple。
Tuple 的基本操作
Tuple 是不可變(Immutable) 的資料結構,雖然不能修改內容,但可以進行查看與取值等操作。
查看元素數量
使用 len()
函數可以取得 Tuple 中的元素個數。
my_tuple = (1, 2, 3, 4)
print(len(my_tuple)) # 輸出: 4
查詢是否包含某元素
可以使用 in
運算子來確認特定元素是否存在於 Tuple 中。
my_tuple = (1, 2, 3, 4)
print(3 in my_tuple) # 輸出: True
print(5 in my_tuple) # 輸出: False
Tuple 的重點整理
- Tuple 是透過括號
()
與逗號,
來定義的。 - 如果只有一個元素,也必須加上逗號。
- 括號可以省略,但建議為了可讀性還是加上。
- Tuple 是不可變的資料型態,無法修改,但可以查詢或取出元素。

實務範例:Tuple 的應用場景
當資料不需要變動,或想更有效率地取出資料時,Python 的 Tuple 是非常實用的工具。本節將介紹幾個典型的使用場景。
函式回傳多個值
Python 的函式可以用 Tuple 的形式回傳多個值。搭配解包(Unpacking)使用,可以讓程式碼更簡潔。
範例:回傳兩個值
def get_coordinates():
x = 10
y = 20
return x, y # 回傳 Tuple
# 使用解包取出回傳值
x_coord, y_coord = get_coordinates()
print(f"x座標: {x_coord}, y座標: {y_coord}") # 輸出: x座標: 10, y座標: 20
進階範例:回傳統計資訊
def calculate_statistics(data):
total = sum(data)
average = total / len(data)
return total, average
data = [10, 20, 30, 40]
total, average = calculate_statistics(data)
print(f"總和: {total}, 平均: {average}") # 輸出: 總和: 100, 平均: 25.0
在 for 迴圈中同時取得多個變數
Tuple 可以讓 for 迴圈一次取出多個值,讓程式碼更簡潔。
範例:迭代包含 Tuple 的 List
# 包含 (姓名, 年齡) 的 List
people = [("佐藤", 25), ("田中", 30), ("鈴木", 28)]
for name, age in people:
print(f"{name}さんは{age}歳です")
輸出結果:
佐藤さんは25歳です
田中さんは30歳です
鈴木さんは28歳です
將 Tuple 作為 Dictionary 的鍵
Tuple 是不可變(Immutable)的,因此可以作為 Dictionary 的 key 使用。這在處理座標資料等複合條件時特別方便。
範例:座標當作鍵值
# 使用 (x, y) 座標作為鍵
locations = {
(0, 0): "原點",
(1, 2): "第一象限的點",
(-1, -2): "第三象限的點"
}
# 根據座標查詢對應值
print(locations[(0, 0)]) # 輸出: 原點
print(locations[(1, 2)]) # 輸出: 第一象限的點
暫時儲存資料或進行資料交換
由於 Tuple 是不可變的,特別適合用來暫存資料或進行安全的資料交換。
範例:交換變數的值
a = 10
b = 20
# 使用 Tuple 同時交換兩個變數的值
a, b = b, a
print(f"a: {a}, b: {b}") # 輸出: a: 20, b: 10
固定設定值的管理
當你不希望設定值被改變時,可使用 Tuple 來儲存。
範例:預設設定值
# 使用 Tuple 定義固定的設定值
DEFAULT_SETTINGS = ("日本語", "UTC+9", "DarkMode")
# 解包後使用
language, timezone, theme = DEFAULT_SETTINGS
print(f"語言: {language}, 時區: {timezone}, 主題: {theme}")
總結
本節介紹了 Python Tuple 在實際開發中的常見應用:
- 函式回傳多個值:利用 Tuple 解包讓程式更簡潔。
- for 迴圈取出多元素:簡化迴圈邏輯。
- 用作 Dictionary 的鍵:可安全表示複合條件。
- 暫存或固定資料:保證資料不被意外修改。
接下來將說明 「5. Tuple 與 List 的差異」,幫助你更清楚何時該使用哪一種資料結構。

Python Tuple 與 List 的差異
在 Python 中,Tuple 和 List 都可用來儲存多個值,但它們在特性上有顯著差異。本節將從可變性、效能與使用場景等面向深入比較。
可變性(Mutable vs Immutable)
最大的差別是是否可修改內容:
- List(列表): 可變(Mutable),可新增、修改、刪除元素。
- Tuple(元組): 不可變(Immutable),建立後無法修改。
範例:比較 List 與 Tuple
# List 可以修改
my_list = [1, 2, 3]
my_list[0] = 10
print(my_list) # 輸出: [10, 2, 3]
# Tuple 不可修改
my_tuple = (1, 2, 3)
# my_tuple[0] = 10 # 這會出錯
記憶體與效能
Tuple 為不可變型別,Python 可對其做更有效率的處理。
- 記憶體使用: Tuple 通常比 List 占用更少空間。
- 效能: Tuple 的操作比 List 更快速。
範例:記憶體比較
import sys
my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
print(sys.getsizeof(my_list)) # List 所占空間
print(sys.getsizeof(my_tuple)) # Tuple 所占空間
範例結果:
List: 104 位元組
Tuple: 88 位元組
適用場景
根據使用目的不同,選擇正確的資料型別非常重要。
| 項目 | List(列表) | Tuple(元組) |
||-|-|
| 性質 | 可變 | 不可變 |
| 用途 | 資料需要變動 | 資料應保持固定 |
| 範例 | 任務清單、待辦事項 | 設定值、座標資料 |
| 記憶體 | 比較高 | 較低 |
| 執行速度 | 較慢 | 較快 |
何時使用 List?
當資料會變動或需要頻繁新增、刪除時,使用 List 較為合適。
tasks = ["買東西", "打掃", "學習"]
tasks.append("煮飯") # 新增任務
print(tasks) # 輸出: ['買東西', '打掃', '學習', '煮飯']
何時使用 Tuple?
當資料應固定不變、強調安全性時,使用 Tuple 較佳。
origin = (0, 0)
destination = (10, 20)
print(f"起點: {origin}, 目的地: {destination}")
List 與 Tuple 的互轉
可根據需求將兩者互相轉換。
List → Tuple
my_list = [1, 2, 3]
my_tuple = tuple(my_list)
print(my_tuple) # 輸出: (1, 2, 3)
Tuple → List
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list) # 輸出: [1, 2, 3]
小結
- 可變性: List 可修改,Tuple 不可。
- 效能: Tuple 較快且省記憶體。
- 使用場景:
- List:用於需要變動的資料。
- Tuple:用於固定資料或不應被修改的資料。

總結
本文從 Python 中 Tuple 的基本概念、取值方式、應用實例,到與 List 的比較都做了詳細說明。
重點整理
- Tuple 基礎
Tuple 是不可變(Immutable)的資料結構,使用括號()
與逗號,
定義。單一元素時不可省略逗號。 - 元素取出技巧
- 索引:使用正向或負向索引取得特定元素。
- 切片:取出多個元素,甚至可逆序。
- 解包:同時將多個元素賦值給變數。
- 實務應用
- 函式回傳多值。
- for 迴圈中一次取多值。
- Tuple 作為 Dictionary 的鍵。
- 用於暫存或固定值管理。
- 與 List 的比較
- List 可變,Tuple 不可變。
- Tuple 記憶體使用更少,效能較佳。
- 可根據情境進行互轉使用。
進一步學習建議
- 了解並搭配使用其他資料型態如 List、Set、Dictionary。
- 將 Tuple 應用於實際專案中,如資料前處理或函式設計。
- 參閱 Python 官方文件,學習進階使用技巧。
感謝你閱讀到最後!希望本文幫助你更熟練使用 Python 的 Tuple。我們下次文章見!
參考資料
世の中のデータにはさまざまな種類があり、中には複数のデータから構成されているものがあります。例えば、 東京都の人形町駅の…