一、前言
在前一天的自主學習中,我使用 Python 的變數、input() 與 print(),建立了第一筆健康習慣紀錄,學習如何輸入及顯示每日的飲水量、睡眠時間、運動時間與蔬果攝取情形。
然而,健康習慣追蹤系統的目的,是長期記錄每天的生活狀況。如果每新增一天的紀錄,就要重新建立一組變數,不僅會讓程式變得冗長,也不方便後續查詢與統計。
因此,今天將學習 Python 的 List(串列)與 Dictionary(字典),了解如何將不同的健康資料整理成有結構的形式,並嘗試儲存多天的健康紀錄。
二、認識 List 與 Dictionary
List 是 Python 中用來儲存多筆資料的資料結構,可以在同一個變數中放入多個項目,並依照順序存取。
例如,想記錄三天的飲水量,就可以使用 List:
water_records = [1500, 1800, 2000]
print(water_records)
print(water_records[0])
執行後,第一行會顯示所有飲水紀錄,而 water_records[0] 則會取得第一筆資料,也就是 1500。
需要注意的是,Python 的 List 索引從 0 開始,因此第一筆資料的索引是 0,第二筆是 1,依此類推。
Dictionary 可以利用「鍵(key)」與「值(value)」的對應關係儲存資料,適合用來表示具有不同欄位的一筆健康紀錄。
例如:
health_record = {
"date": "2026-10-23",
"water_intake": 1500,
"sleep_hours": 7.5,
"exercise_minutes": 30,
"ate_fruit": True
}
print(health_record["water_intake"])
print(health_record["sleep_hours"])
在這個範例中,"water_intake" 是鍵,1500 是對應的值。只要知道欄位名稱,就可以取得相應的資料。
相較於單純使用 List,Dictionary 更適合整理一筆包含多種不同資訊的健康紀錄,因為每個欄位都有明確的名稱。
三、結合 List 與 Dictionary 儲存多筆健康紀錄
了解兩種資料結構後,我可以將它們結合使用:每一筆健康紀錄使用 Dictionary 表示,再利用 List 儲存多筆紀錄。
health_records = [
{
"date": "2026-10-21",
"water_intake": 1500,
"sleep_hours": 7.0,
"exercise_minutes": 20,
"ate_fruit": True
},
{
"date": "2026-10-22",
"water_intake": 1800,
"sleep_hours": 7.5,
"exercise_minutes": 30,
"ate_fruit": True
},
{
"date": "2026-10-23",
"water_intake": 2000,
"sleep_hours": 8.0,
"exercise_minutes": 45,
"ate_fruit": False
}
]
for record in health_records:
print("日期:", record["date"])
print("飲水量:", record["water_intake"], "mL")
print("睡眠時間:", record["sleep_hours"], "小時")
print("運動時間:", record["exercise_minutes"], "分鐘")
print("蔬果攝取:", record["ate_fruit"])
print("--------------------")
這段程式建立了三筆測試用的健康紀錄,並利用 for 迴圈逐筆讀取資料。
透過這種方式,未來即使需要增加更多天的紀錄,也可以直接將新的 Dictionary 加入 List,而不必為每一天重新建立一組變數。
四、練習新增健康紀錄
除了事先建立多筆資料,也可以使用 append() 將新的紀錄加入 List。
new_record = {
"date": "2026-10-24",
"water_intake": 1700,
"sleep_hours": 6.5,
"exercise_minutes": 25,
"ate_fruit": True
}
health_records.append(new_record)
print("目前的紀錄筆數:", len(health_records))
append() 可以將新項目加入 List 的尾端,而 len() 則可以計算 List 中目前有多少筆資料。
這代表系統已經具備在程式執行期間累積多筆紀錄的基本能力。不過,目前的資料仍然只存在記憶體中,程式結束後不會自動永久保存,因此還需要在後續學習檔案或資料庫的儲存方式。
五、Day 9 實作步驟
建立一個 List,練習儲存多天的飲水量。
建立一個 Dictionary,將日期、飲水量、睡眠時間及運動時間等資料整理成一筆紀錄。
將多個 Dictionary 放進同一個 List,建立多筆健康紀錄。
使用 for 迴圈逐筆顯示資料。
使用 append() 新增一筆紀錄,並利用 len() 確認紀錄數量是否增加。
六、今日成果
今天學習了 Python 的 List 與 Dictionary,並嘗試將兩者結合,建立可以儲存多筆健康習慣紀錄的資料結構。
透過這次練習,我了解到,List 適合管理多個依序排列的項目,而 Dictionary 適合利用欄位名稱整理單筆紀錄。兩者結合後,就能以較有條理的方式管理多天的健康資料。
目前的程式已經能夠在執行期間新增與讀取多筆紀錄,但資料還沒有永久保存。下一天將學習 Pandas,了解如何把這些健康紀錄整理成表格,並為後續的資料統計與分析建立基礎。