9.3 元組類型
(tuple)與列表非常相似,也是一種有序序列類型,但最大的不同在于:元組是不可變對象(immutable)。一旦創建,就不能修改其中的元素。元組的不可變特性使其特別適合用于記錄版本、日志快照或模型原始參數等可追溯歷史的應用。
9.3.1 元組的創建
元組可通過逗號 , 分隔各元素來創建,一般會加上圓括號 () 。也可以使用內置函數 創建。
print(t1, t2, t3, t4)若只包含一個元素,必須加逗號 , ,否則不會被識別為元組:
print(type(single), type(not_tuple))元組也支持嵌套結構:
nested = (1, (2, 3), 4)9.3.2 元組的常用操作
元組與列表非常相似,也是一種有序序列類型,因此共享大多數序列操作。
(1)序列運算(拼接、重復與比較)
print((1, 2, 3) > (1, 2)) # True(2)序列通用操作(索引、切片、遍歷與成員判斷)
print(50 not in t) # True(3)搭配內置函數與使用
print(t2.index(2, 2)) # 3 從索引 2 之后繼續查找(4)修改元組中的可變對象元素
雖然元組本身不可變,但若其內部包含可變對象(如列表),則內部數據仍然可以被修改。
print(t) # (1, [99, 3])說明:這并不違反元組不可變性,因為改變的是內部可變對象本身,而不是元組的綁定關系。
(5)元組在函數設計中的應用
元組常被用作函數的返回值,使函數可以一次性返回多個結果。
print(low, high, avg) # 10 40 25.0說明:Python 函數永遠只返回一個對象。當寫作 “return a, b” 時,實際上是返回一個元組。
在函數的實參中,可以使用 * 進行位置參數解包傳參:
print(add(*args)) # 等價于 add(3, 5)在函數的形參中,可以使用 * 捕獲可變位置參數。
print(avg(1, 2, 3, 4))9.3.3 元組示例與應用
例 9.3.1:AI 模型參數對比(權重凍結示例)
在深度學習模型微調(fine-tuning)過程中,通常會固定部分預訓練參數,只更新其他層。元組可以用來保存“凍結參數”,防止被意外修改。
compare_weights((0.55, 0.75, 0.95))元組的不可變特性可確保模型關鍵參數的安全性,在 AI 模型微調或版本管理中常用于記錄原始權重。
例 9.3.2 坐標轉換
以下示例可將多個坐標點進行平移和縮放變換。
print(f"變換后的點: {scaled_points}")輸出:
變換后的點: ((4.0, 6.0), (8.0, 10.0), (12.0, 14.0))9.4 集合類型
(set)是一種無序、可變、不重復的序列類型。集合中的元素必須是,也就是說,不能包含列表或字典等可變類型。
集合常用于去重、成員判斷以及數學意義上的集合運算(交集、并集、差集等)。
9.4.1 集合的創建
集合可通過花括號 {} 或內置函數 創建。
空集合必須使用 set(),否則 {} 會被識別為字典。
print(type(empty)) #也可以通過推導式來創建集合。
print(squares) # 如 -3 與 3 的平方相同,因此被自動去重。要注意的是,集合的輸出順序不固定,每次運行可能不同。
9.4.2 集合運算
集合支持豐富的運算符,用于實現數學集合操作。
print(A ^ B) # 對稱差集:{1, 2, 4, 5}這些運算也可以使用對應的方法實現:
print(A.symmetric_difference(B))9.4.3 集合的常用操作
除了上述集合運算,集合也像其它可變序列那樣,進行成員判斷、遍歷以及搭配內置函數使用等。不過,由于集合基于哈希表存儲且無固定順序,因此無法使用索引訪問和切片。
還可通過進行增刪元素、關系測試等操作。
(1)添加與刪除元素
fruits.clear() # 清空集合(2)關系測試
print(A.isdisjoint({4, 5})) # True,無交集集合基于哈希表實現,成員判斷、添加與刪除的平均時間復雜度為 O(1)。
9.4.4 集合示例與應用
例 9.4.1:數據去重與統計
集合可快速實現去重操作。
下面的例子演示如何去除重復用戶 ID,并計算唯一數量。
print("用戶集合:", unique_users)說明:集合的唯一性使其成為數據分析中“去重”的高效工具。
例 9.4.2:用戶興趣交集推薦
在推薦系統中,集合可用于快速求出不同用戶的共同興趣,從而生成個性化推薦內容。
print("共同興趣:", common)說明:通過集合運算可高效實現興趣標簽匹配,是社交推薦與內容推薦算法的核心邏輯之一。
小結
本次課介紹了兩種重要的組合數據類型:元組(tuple)與集合(set)。元組是有序且不可變的序列,適合存儲固定結構或不應被修改的數據;集合則是無序且元素唯一的容器,常用于去重、集合運算與快速關系判斷。
在下一課中,我們將學習映射類型——字典(dict),它通過“鍵–值(key–value)”的結構存儲與訪問數據,是 Python 最核心、最強大的數據類型之一。
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.