[Python教學] 初級:資料結構與集合型別

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

Python 是一門功能強大且簡潔的程式語言,內建了多種資料結構來幫助開發者處理各種不同的需求。今天,我們將介紹五種常見的資料結構:字串、清單、元組、集合和字典,並學習它們的使用方式。

1. 字串 (String)

字串是用來表示文字的資料型別。在 Python 中,字串可以用單引號或雙引號來表示:

message = "Hello, World!"

字串操作

Python 提供了豐富的字串操作方法:

  • 索引 (Indexing):使用索引來訪問字串中的特定字元。
message = "Hello"
print(message[0]) # H
print(message[-1]) # o
  • 切片 (Slicing):獲取字串的子字串。
print(message[1:4])  # ell
print(message[:3]) # Hel
print(message[3:]) # lo
  • 字串方法
print(message.upper())   # HELLO
print(message.lower()) # hello
print(message.replace("l", "x")) # Hexxo
print(message.split(",")) # ['Hello', ' World!']

2. 清單 (List)

清單是 Python 中最常用的資料結構之一,允許存儲多個值。清單使用方括號 [] 表示。

fruits = ["apple", "banana", "cherry"]

清單操作

  • 添加元素:使用 append() 方法在清單末尾添加元素。
fruits.append("orange")
print(fruits) # ['apple', 'banana', 'cherry', 'orange']
  • 移除元素:使用 remove() 方法刪除指定元素。
fruits.remove("banana")
print(fruits) # ['apple', 'cherry', 'orange']
  • 索引與切片:與字串類似,清單也可以透過索引訪問元素,並使用切片操作。
print(fruits[0])  # apple
print(fruits[1:3]) # ['banana', 'cherry']
  • 排序:使用 sort() 方法對清單進行排序。
fruits.sort()
print(fruits) # ['apple', 'banana', 'cherry']

3. 元組 (Tuple)

元組與清單類似,也可以儲存多個元素,但元組是不可變的,意味著一旦創建就不能修改。元組使用小括號 () 表示。

coordinates = (10, 20)

元組操作

  • 索引與切片:與清單相同,元組也可以通過索引和切片訪問。
print(coordinates[0])  # 10
print(coordinates[1:2]) # (20,)
  • 不可變性:嘗試更改元組中的值會導致錯誤。
# coordinates[0] = 15  # 會引發錯誤

雖然元組不可變,但它們可以用來作為鍵值(key)來存入字典,這是它們的一個優勢。

4. 集合 (Set)

集合是無序且不允許重複元素的資料結構,使用大括號 {} 表示。集合主要用於消除重複項或進行集合運算。

my_set = {1, 2, 3, 4, 4, 5}
print(my_set) # {1, 2, 3, 4, 5}

集合操作

  • 添加與刪除元素:使用 add() 方法添加元素,remove() 刪除元素。
my_set.add(6)
print(my_set) # {1, 2, 3, 4, 5, 6}

my_set.remove(3)
print(my_set) # {1, 2, 4, 5, 6}
  • 集合運算:Python 支援多種集合運算,如聯集(union)、交集(intersection)、差集(difference)等。
set_a = {1, 2, 3}
set_b = {3, 4, 5}

print(set_a.union(set_b)) # {1, 2, 3, 4, 5}
print(set_a.intersection(set_b)) # {3}
print(set_a.difference(set_b)) # {1, 2}

5. 字典 (Dictionary)

字典是一種鍵值對(Key-Value)的資料結構,使用大括號 {} 表示,允許你根據鍵值(Key)來查找對應的值(Value)。字典中的鍵是唯一的,而值可以是任何資料型別。

student = 
{
"name": "Alice",
"age": 25,
"grades": [85, 90, 88]
}

字典操作

  • 訪問值:使用鍵來獲取對應的值。
print(student["name"])   # Alice
print(student["grades"]) # [85, 90, 88]
  • 修改值:可以通過指定鍵來修改對應的值。
student["age"] = 26
print(student["age"]) # 26
  • 添加鍵值對:可以新增新的鍵值對。
student["major"] = "Computer Science"
print(student) # {'name': 'Alice', 'age': 26, 'grades': [85, 90, 88], 'major': 'Computer Science'}
  • 刪除鍵值對:使用 del 刪除特定的鍵值對。
del student["major"]
print(student) # {'name': 'Alice', 'age': 26, 'grades': [85, 90, 88]}

進階練習-將元組(Tuple)作為鍵值(Key)來存入字典

在Python中,元組(Tuple)可以作為字典的鍵值(Key)。不過,元組中的所有元素必須是數字、字串、布林值等。元組通常用於鍵是多個值的情況,例如將多個座標、日期或其他屬性作為字典的鍵值。

以下是幾個範例,展示了不同情境下如何將元組作為字典的鍵值來使用:

範例 1:多維座標作為鍵

在一些情況下,我們可能需要使用多維座標來標識某個物體或位置,例如在棋盤上標註棋子的座標。

# 多維座標作為鍵
chess_board = {}

# 使用元組表示座標
chess_board[(0, 0)] = "Rook"
chess_board[(0, 1)] = "Knight"
chess_board[(0, 2)] = "Bishop"

# 查找座標上的棋子
print(chess_board[(0, 1)]) # Output: Knight

範例 2:日期作為鍵

元組可以表示複合日期,例如年、月、日,可以用於日程管理或記錄特定日期的事件。

# 使用元組表示日期
events = {}

# 將日期元組作為鍵
events[(2024, 10, 24)] = "Python Learning Day"
events[(2024, 12, 25)] = "Christmas"

# 查詢某個日期的事件
print(events[(2024, 12, 25)]) # Output: Christmas

範例 3:學生考試成績(名字+科目)

在這個範例中,我們使用(學生名,科目)這樣的元組作為鍵來儲存每個學生的成績。

# 學生成績系統
grades = {}

# 使用(名字,科目)元組作為鍵
grades[("Alice", "Math")] = 95
grades[("Alice", "Science")] = 90
grades[("Bob", "Math")] = 85

# 查詢成績
print(grades[("Alice", "Math")]) # Output: 95
print(grades[("Bob", "Math")]) # Output: 85

結論

這篇文章介紹了 Python 中五個重要的資料結構:字串、清單、元組、集合和字典。每種資料結構都有各自的特點和應用場景,根據不同的需求選擇合適的資料結構,可以讓你的程式更加高效且易於維護。掌握這些基礎後,你將能夠更靈活地處理各種資料和實際專案。

留言
avatar-img
留言分享你的想法!
avatar-img
追極光的北極熊|軟體工程師的小天地
9會員
159內容數
歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
學習Python核心語法,從變數、資料型態到物件導向程式設計,涵蓋15個重要技巧,並包含實例與說明,助你快速建立程式基礎。
Thumbnail
學習Python核心語法,從變數、資料型態到物件導向程式設計,涵蓋15個重要技巧,並包含實例與說明,助你快速建立程式基礎。
Thumbnail
基礎語法: 1、注釋: 例如:#單行注釋 ““多行注釋”” 2、變量:直接賦值, 例如:x=5 3、數據類型: 例如:int, float, str, bool 4、類型轉換: 例如:int( ), float( ), str( ), bool( )
Thumbnail
基礎語法: 1、注釋: 例如:#單行注釋 ““多行注釋”” 2、變量:直接賦值, 例如:x=5 3、數據類型: 例如:int, float, str, bool 4、類型轉換: 例如:int( ), float( ), str( ), bool( )
Thumbnail
本篇Python筆記介紹了List和Dictionary Comprehensions的應用與優勢。通過具體例子展示如何利用這些生成式來進行資料篩選、轉換和整合,並提升程式碼的可讀性和效能。適合新手學習如何用簡潔的語法來快速創建和操作資料結構,幫助你在資料分析中更靈活應用Python。
Thumbnail
本篇Python筆記介紹了List和Dictionary Comprehensions的應用與優勢。通過具體例子展示如何利用這些生成式來進行資料篩選、轉換和整合,並提升程式碼的可讀性和效能。適合新手學習如何用簡潔的語法來快速創建和操作資料結構,幫助你在資料分析中更靈活應用Python。
Thumbnail
在這篇文章中,Rex 分享了 Python 中的資料結構 - 列表。列表是一種可變且長度可變的序列,可以包含多種數據類型。文章介紹了列表的優點及其基本操作,包括新增、插入和刪除項目,並透過實際的旅遊清單範例來說明。適合對 Python 感興趣的初學者,瞭解列表的基本用法及其特性。
Thumbnail
在這篇文章中,Rex 分享了 Python 中的資料結構 - 列表。列表是一種可變且長度可變的序列,可以包含多種數據類型。文章介紹了列表的優點及其基本操作,包括新增、插入和刪除項目,並透過實際的旅遊清單範例來說明。適合對 Python 感興趣的初學者,瞭解列表的基本用法及其特性。
Thumbnail
本篇文章探討了Python中的字串、列表、元組、集合與字典這五種資料類型的定義與基本操作。這些資料類型各具特點,例如字串和元組是不可變的,列表和集合是可變的,適合不同的使用場景。文章中詳細介紹如何定義進行基本的操作(如添加、刪除、訪問元素等)。
Thumbnail
本篇文章探討了Python中的字串、列表、元組、集合與字典這五種資料類型的定義與基本操作。這些資料類型各具特點,例如字串和元組是不可變的,列表和集合是可變的,適合不同的使用場景。文章中詳細介紹如何定義進行基本的操作(如添加、刪除、訪問元素等)。
Thumbnail
在程式設計中,變數是儲存資料的基本單位,而型別則決定了資料的格式及使用方式。本文介紹了 Python 開發中的多種資料型別,包括整型、浮點型、字串、布林型及複數型,還提供了變數命名的規則及其使用方法。進一步探索運算子,包括比較運算子和邏輯運算子,以增強程式的邏輯判斷能力。
Thumbnail
在程式設計中,變數是儲存資料的基本單位,而型別則決定了資料的格式及使用方式。本文介紹了 Python 開發中的多種資料型別,包括整型、浮點型、字串、布林型及複數型,還提供了變數命名的規則及其使用方法。進一步探索運算子,包括比較運算子和邏輯運算子,以增強程式的邏輯判斷能力。
Thumbnail
我們將會學習 Python 中的數據結構。 主要的數據結構包括列表 (List)、元組 (Tuple)、字典 (Dictionary) 以及集合 (Set)。
Thumbnail
我們將會學習 Python 中的數據結構。 主要的數據結構包括列表 (List)、元組 (Tuple)、字典 (Dictionary) 以及集合 (Set)。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News