有序列表的基本運算-List & Tuple
當我們有成千上萬筆資料要處理時,不可能為每筆資料都取一個變數名稱。這時,我們需要「有序容器」來幫我們排隊管理。
1. List(列表):靈活變動的排隊隊伍
List 是最常用的資料型態,它的特點是「有序」且「可變動」。- 基礎操作: 可以透過索引(Index)取得特定位置的資料(編號從 0 開始)。例如
grades=[22,55,34,78,98],grades[3]是取第四筆資料。 - 修改與刪除: 你可以隨時更換內容(如
grades[0]=55),或利用切片語法[1:4]=[]一次刪除多筆資料。 - 串接與擴充: 使用
+號把兩組資料連在一起。 - 巢狀結構: List 裡面還可以再放 List(如
[[3,4,5], [7,8,9]]),這在處理二維表格資料時非常實用。
2. Tuple(元組):一旦決定就不再更改
Tuple 看起來跟 List 很像,但它使用的是圓括號 ()。
- 核心特性: 不可變動性 (Immutable)。一旦定義好內容,就不能修改、新增或刪除。
- 安全性: 因為不可變,它在程式運作中更安全,也常被用來確保重要的參數不會被意外改寫。
什麼時候用 List?什麼時候用 Tuple?
在處理數據(如房地產分析或行銷數據)時,兩者的分工非常明確:
狀況 A:使用 List 的場景(動態、頻繁更新)
當資料需要隨時間增加或進行加工時,List 是首選。
- 數據清洗與過濾: 從資料庫抓取一整年的房價數據,你需要剔除掉極端值(刪除資料)或將台幣轉為美金(修改資料)。
- 爬蟲抓取: 在抓取網頁資料時,我們會建立一個空的 List,然後每抓到一筆新資訊就用
append丟進去。 - 批次運算: 例如計算 10km 跑步訓練的每公里配速,你會把原始數據存在 List 中進行迴圈運算。
狀況 B:使用 Tuple 的場景(靜態、固定規範)
當資料代表「固定的結構」或「不應變動的常數」時,就要用 Tuple。
- 座標與地理資訊: 例如地點的經緯度
(25.06, 121.21)。座標點不應該被單獨修改其中一個數字,否則位置就跑掉了。 - 資料庫欄位名稱: 一張表的欄位名稱(如:日期、溫度、壓力)通常是固定的,用 Tuple 儲存可以防止程式在跑數據時不小心改到欄位名。
- 作為「鍵 (Key)」或「固定定義」: 就像是作為字典的「索引」,例如產品 Code ,他可能是固定的號碼,用來查詢使用,那你就部會希望他被更動到。
實務上的 List & Tuple「黃金組合」
在數據分析(如使用 Pandas)時,我們最常看到的結構其實是:「List 裡面裝著 Tuple」。
- 外層 List: 代表「一整張表」,妳可以隨時增加一列新的產品資料。
- 內層 Tuple: 代表「一筆資料(Row)」。因為一個產品的
(ID, 名稱, 價格)是一個固定的組合,不應該被拆開或單獨改掉 ID,所以用 Tuple 來保護這一橫列的完整性。
這就讓我想到之前做數據分析,會使用到人員清單,但人員是會異動(例如轉調、離職、加入),感覺使用 List 是比較好的選擇,但每位員工又會有他們唯一的 ID,這時候使用字典去處理人員清單的資料是更推薦的,字典又是什麼呢? 就交給明天的我去學習了!

