Python 元組:不可變序列與拆包
了解 Python 元組。了解何時使用元組而不是列表、元組解包的工作原理以及不變性如何確保資料安全。
概述
元組是 Python 中有序的、不可變的元素序列。與列表不同,列表用方括號“[]”括起來並且可以更改,而元組則用括號“()”括起來,一旦創建就無法修改。嘗試在元組中新增、追加、刪除或重新分配元素將導致執行時間錯誤。這種不變性充當了安全功能,確保應用程式中傳遞的資料保持恆定和安全。
由於元組是不可變的,因此它們比列表更快並且使用更少的記憶體。它們也是可散列的(假設元組中的所有元素都是可散列的),這允許它們用作字典中的鍵或集合中的元素——功能列表不支援。元組傳統上用於將異質資料記錄分組,例如表示資料庫行、座標或 RGB 顏色值。
元組最優雅的功能之一是元組拆包。這允許您將元組的元素分配給單行中的各個變數(例如“x, y = 座標”)。當從函數傳回多個值時,它被大量使用。 Python 還允許使用解包 (`a, b = b, a`) 動態交換變量,而不需要臨時的第三個變量,使您的程式碼明顯更乾淨且更易於遵循。
程式碼和執行輸出
將座標建立為元組,演示不變性限制並解包元素。
tuples_demo.py
在編輯器中嘗試# Creating tuples
location = (40.7128, -74.0060) # NYC Coordinates
print(f"Latitude: {location[0]}, Longitude: {location[1]}")
# Tuple unpacking
lat, lon = location
print(f"Unpacked Lat: {lat} | Unpacked Lon: {lon}")
# Function returning multiple values
def get_user_info():
return "Alice", 25, "admin"
name, age, role = get_user_info()
print(f"{name} ({role}) is {age} years old.")端子輸出
Latitude: 40.7128, Longitude: -74.006
Unpacked Lat: 40.7128 | Unpacked Lon: -74.006
Alice (admin) is 25 years old.逐步實施
- 從輔助函數中乾淨地傳回多個值
- 儲存座標、顏色或資料庫記錄等常數
- 為多維映射定義不可變字典鍵
常見問題解答
如何定義具有單一元素的元組?
您必須在元素後面加上一個尾隨逗號,例如 single_item = (42,)。如果沒有逗號,Python 將其視為標準括號表達式。
您可以修改嵌套在元組內的清單嗎?
是的。雖然元組參考本身是不可變的,但如果它包含可變物件(例如清單),您可以就地修改這些清單的內容。
相關主題
推薦的 Python 資源
透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。