建立用來儲存資料的 namedtuple
在處理資料時,你常會使用字典,因為用鍵名能讓程式碼更好讀,也更容易取用資料。Python 還有另一種容器 namedtuple,它本質上是 tuple,但為 tuple 的每個位置都提供了名稱。你可以在建立時指定型別名稱,並提供欄位名稱的清單。
例如,Cookie = namedtuple("Cookie", ['name', 'quantity']) 會建立一個容器,你可以用 Cookie('chocolate chip', 1) 產生新的此型別物件。之後可用 name 屬性取用名稱,用 quantity 屬性取得數量。
在這個練習中,你要把一直在用的企鵝體重紀錄資料重構為 namedtuple,讓程式碼更具描述性。
本練習屬於課程
Python 的資料型別
練習說明
- 從
collections匯入namedtuple。 - 建立一個名為
SpeciesDetails的 namedtuple,型別名稱為SpeciesDetails,欄位為'species'、'sex'和'body_mass'。 - 建立一個名為
labeled_entries的清單。 - 走訪
weight_log清單,將每筆資料解包為species、sex和body_mass,為每筆資料建立一個新的 SpeciesDetails namedtuple 實例,並把它加入labeled_entries。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Import namedtuple from collections
from collections import ____
# Create the namedtuple: SpeciesDetails
SpeciesDetails = ____(____, ['species', 'sex', 'body_mass'])
# Create the empty list: labeled_entries
labeled_entries = []
# Iterate over the weight_log entries
for ____, ____, ____ in ____:
# Append a new SpeciesDetails namedtuple instance for each entry to labeled_entries
____
print(labeled_entries[:5])