Python 學習筆記 第2集:資料結構入門

更新於 發佈於 閱讀時間約 8 分鐘

在寫程式時,資料不是只有單一數字或字串,往往是一整組、一對一的配對、或無特定順序的集合。Python 提供了四種非常實用的資料結構:list(串列)、dict(字典)、set(集合)和 tuple(元組)。


📋 1. list [串列]

➤ 用法與宣告:

fruits = ["apple", "banana", "cherry"]
print(fruits[1]) # 輸出 banana

➤ 說明:

  • 有順序、可重複、可變動
  • 使用索引值(從0開始)存取元素,索引值是整數,代表資料在 list 中的位置(與 dict 的 key 不同,dict是一個key對應一個value)

➤ 常見操作:

fruits.append("orange")        # 加入單一元素
fruits.extend(["grape", "kiwi"]) # 加入多個元素
fruits[0] = "grape" # 修改元素
fruits.pop() # 移除最後一個
len(fruits) # 串列長度

➤ 擷取片段(切片):

print(fruits[1:3])    # 從索引12,輸出 ['banana', 'cherry']
print(fruits[:2]) # 從開頭到索引1,輸出 ['grape', 'banana']
print(fruits[-2:]) # 最後兩個元素

➤ 注意事項:

  • 若使用超出範圍的索引,會出現 IndexError
  • 可存放不同型態資料(雖然不建議)


🔑 2. dict {字典}

➤ 用法與宣告:

person = {"name": "Dolly", "age": 7}
print(person["name"]) # 輸出 Dolly

➤ 說明:

  • 使用 key 對應 value 的結構(無順序),就像名字對應電話號碼,查找速度快。
  • 例如:{"name": "Dolly", "age": 7} 中,"name" 是 key,對應的 "Dolly" 是 value。
  • key 必須唯一,通常為字串

➤ 常見操作:

person["age"] = 8                    # 修改值
person["city"] = "Taipei" # 加入新鍵值
print(person.get("hobby", "無資料")) # 安全取值(避免 KeyError)
print(person.keys()) # 輸出所有 key
print(person.values()) # 輸出所有 value
print(person.items()) # 同時取得 key 與 value

➤ 進階操作:

person.update({"age": 9, "job": "teacher"})  # 同時更新多筆鍵值對
print(person)

del person["city"] # 刪除指定的 key-value
print(person)

➤ 尋訪 dict:

for key in person:
print(key, person[key])

for key, value in person.items():
print(f"{key} 的值是 {value}")

➤ 注意事項:

  • 若取用不存在的 key,會出現 KeyError,可用 get() 避免
  • 適合用在存放具名欄位或配對資料
  • update() 不會刪除原本資料,只會覆蓋或新增
  • del 只能刪除已存在的 key,否則會報錯


🔢 3. set {集合}

➤ 用法與宣告:

colors = {"red", "green", "blue"}

➤ 說明:

  • 無順序、不重複、可進行集合運算
  • 與 dict 不同的是,set 裡面只有值(value),沒有對應的 key,適合用來快速檢查「有沒有某個項目」,或進行交集、聯集等集合邏輯運算

➤ 常見操作:

colors.add("yellow")        # 加入元素
colors.remove("green") # 移除元素,若元素不存在會報錯
colors.discard("purple") # 移除元素,若不存在也不會報錯(較安全)
print("red" in colors) # 是否存在

➤ 集合運算:

A = {1, 2, 3}
B = {3, 4, 5}
print(A | B) # 聯集 {1, 2, 3, 4, 5}
print(A & B) # 交集 {3}
print(A - B) # 差集 {1, 2}(出現在 A 但不在 B

➤ 注意事項:

  • 集合內元素不可重複,重複項自動忽略
  • 沒有索引順序,無法使用 colors[0]


📦 4. tuple(元組)

➤ 用法與宣告:

point = (3, 4)
print(point[0]) # 輸出 3

➤ 說明:

  • 與 list 類似但「不可修改內容」
  • 通常用於座標、固定組合資料

➤ 注意事項:

  • 建立只有一個元素的 tuple 要加逗號:(5,)
  • 不可更改其內容,適合用來保護資料不被誤改

📊四種資料結構比較表


raw-image



⚠️ 常見錯誤提醒

list:

    • ❌ fruits = fruits.append("apple") → append() 會回傳 None,應直接寫 fruits.append("apple")
    • ❌ 索引超出範圍會錯,例如 fruits[100]

dict:

    • ❌ 寫成 person.get["name"](錯,應為 person.get("name"))
    • ❌ del person.city 應為 del person["city"]

set:

    • ❌ 誤用索引 colors[0]
    • ❌ remove 不存在的元素會錯,可改用 discard()

tuple:

    • ❌ (5) 是整數不是 tuple,應寫成 (5,)

🎯 小練習

🧪 練習1:建立一個學生資料 dict,並印出姓名與年齡

student = {"name": "Emma", "age": 10}
print(student["name"], student["age"])

🧪 練習2:使用 set 過濾重複項目

nums = [1, 2, 2, 3, 3, 3]
unique = set(nums)
print(unique)


📚 第2集總結:

  • list、dict、set、tuple 是處理多筆資料的核心工具。
  • 選擇正確的資料結構可以讓程式更簡潔與高效。
  • dict 與 set 特別適合查找與比對。

➡️ 下一集將介紹流程控制:if, for, while,讓我們的程式能根據條件做出選擇與重複動作!

留言
avatar-img
留言分享你的想法!
avatar-img
Dolly的奇妙育兒之旅
9會員
76內容數
Dolly 是個家有亞斯哥和過動妹的媽媽 為了記得那些奇妙的育兒真實故事 決定把我(Dolly)和大亞(爸爸)、端端(亞斯哥)和波妞(過動妹)那些日子發生的事寫成部落格 一串感恩又心累、感謝又荒謬的心路歷程紀錄
2025/06/29
Python 是一種簡潔又強大的程式語言,深受初學者與專業開發者喜愛。不論想自動化工作流程、分析資料、做遊戲、架網站,甚至是協助孩子學習邏輯思維,Python 都是一個絕佳的選擇。 有感於工作上有些前輩利用Python幫助自己工作,提升了工作效率和拓展產出物的變化性,Dolly決定來了解Python
Thumbnail
2025/06/29
Python 是一種簡潔又強大的程式語言,深受初學者與專業開發者喜愛。不論想自動化工作流程、分析資料、做遊戲、架網站,甚至是協助孩子學習邏輯思維,Python 都是一個絕佳的選擇。 有感於工作上有些前輩利用Python幫助自己工作,提升了工作效率和拓展產出物的變化性,Dolly決定來了解Python
Thumbnail
2025/06/21
如果你也在尋找打罵與權威以外,更溫柔有效的育兒方式,不妨親自體驗CST課程,讓自己成為孩子最溫暖有力的引導者。
Thumbnail
2025/06/21
如果你也在尋找打罵與權威以外,更溫柔有效的育兒方式,不妨親自體驗CST課程,讓自己成為孩子最溫暖有力的引導者。
Thumbnail
2025/06/16
為什麼有些嬰幼兒常保持微笑,不管何時都很聽話,有些卻難以入睡、時常哭鬧?由於每人都有不同的「天生氣質」,因此對人事物產生的態度、反應,都會因氣質的不同而產生變化。
Thumbnail
2025/06/16
為什麼有些嬰幼兒常保持微笑,不管何時都很聽話,有些卻難以入睡、時常哭鬧?由於每人都有不同的「天生氣質」,因此對人事物產生的態度、反應,都會因氣質的不同而產生變化。
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
Thumbnail
古有四大名著,現今Python四大容器🤣 哪四個?list串列,tuple元組,dict字典,set集合。 那這四個怎麼分? 一起來看看吧! (以下有手寫與上機實際測試請付費觀看) 以上我精心整理主要會使用到的功能 當然python功能太多了,肯定不只。 實際操作: 大概就這樣?(
Thumbnail
古有四大名著,現今Python四大容器🤣 哪四個?list串列,tuple元組,dict字典,set集合。 那這四個怎麼分? 一起來看看吧! (以下有手寫與上機實際測試請付費觀看) 以上我精心整理主要會使用到的功能 當然python功能太多了,肯定不只。 實際操作: 大概就這樣?(
Thumbnail
在日常中我們都會將很多事物定上了一個標籤,例如將商品標記價格,替孩子取姓名,公司上冠上職稱等等。 在Python中也有這種方法,就是字典的形式{ 'name' : 'crab', 'apple', 1000 }去呈現
Thumbnail
在日常中我們都會將很多事物定上了一個標籤,例如將商品標記價格,替孩子取姓名,公司上冠上職稱等等。 在Python中也有這種方法,就是字典的形式{ 'name' : 'crab', 'apple', 1000 }去呈現
Thumbnail
列表(List)和元組(Tuple)都是 Python 中用來存儲集合元素的數據結構,兩者看起來很像,在初學時很容易搞混,所以觀念要建立好。 可以把列表(List)和元組(Tuple)想像成是一個容器,什麼元素都可以塞
Thumbnail
列表(List)和元組(Tuple)都是 Python 中用來存儲集合元素的數據結構,兩者看起來很像,在初學時很容易搞混,所以觀念要建立好。 可以把列表(List)和元組(Tuple)想像成是一個容器,什麼元素都可以塞
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News