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

歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Python 是一個功能強大且易於學習的程式語言,適合初學者快速上手。今天,我們將介紹 Python 的幾個基礎概念,涵蓋變數、資料型別、運算符、條件判斷、迴圈和函式,這些是所有 Python 程式的核心組件。
Python 是一種功能強大且易於學習的程式語言,無論是初學者還是經驗豐富的開發者都可以從中獲益。在 Windows 作業系統上運行 Python,有許多不同的環境可以選擇,從基於網頁的開發環境到功能強大的集成開發環境 (IDE)。
Python 是目前最受歡迎的程式語言之一,它被廣泛應用於多個領域,如資料分析、網頁開發、機器學習和自動化。這篇文章將詳細介紹 Python 的基礎語法,並探討 Python 的優缺點、與其他程式語言的比較,最終解答為什麼你應該學習 Python。
Python 是一個功能強大且易於學習的程式語言,適合初學者快速上手。今天,我們將介紹 Python 的幾個基礎概念,涵蓋變數、資料型別、運算符、條件判斷、迴圈和函式,這些是所有 Python 程式的核心組件。
Python 是一種功能強大且易於學習的程式語言,無論是初學者還是經驗豐富的開發者都可以從中獲益。在 Windows 作業系統上運行 Python,有許多不同的環境可以選擇,從基於網頁的開發環境到功能強大的集成開發環境 (IDE)。
Python 是目前最受歡迎的程式語言之一,它被廣泛應用於多個領域,如資料分析、網頁開發、機器學習和自動化。這篇文章將詳細介紹 Python 的基礎語法,並探討 Python 的優缺點、與其他程式語言的比較,最終解答為什麼你應該學習 Python。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
在Python中, 要寫一個完整的「符元化類 Tokenizer Class」, 這個Class需要的功能有: 1.「編碼 Encode」:將「文本 Text」分割成「符元 Token」。 2.「詞彙 Vocabulary」:將「符元 Token」映射到「符元ID TokenID
Thumbnail
本章節旨在介紹 TypeScript 的基本資料型別,包括內建型別、型別轉換、自訂型別、元組、集合、陣列、和字典型別。透過理解和使用這些型別,可以提高代碼的可讀性和可維護性。
解讀JSON 字串 首先,你需要使用 Python 的 json 模組來解讀JSON 字串。 JSON的基本結構: 由花括號 {} 包圍,內部是鍵值對的集合,每個鍵值對之間用逗號分隔。 鍵是字串類型,值可以是任何JSON支持的資料類型(字串、數字、布林值、陣列、物件或 null)。 {
Thumbnail
本文介紹了串列運算式的應用,以及與Lambda匿名函式方法的比較,並提供了程式範例。串列運算式提供了一種簡潔的語法,用於創建、轉換和過濾列表。lambda函式用於創建匿名函式,通常用於簡單的操作。建議在比較複雜的情況下使用一般for迴圈加if來表示。
Thumbnail
列表(List)和元組(Tuple)都是 Python 中用來存儲集合元素的數據結構,兩者看起來很像,在初學時很容易搞混,所以觀念要建立好。 可以把列表(List)和元組(Tuple)想像成是一個容器,什麼元素都可以塞
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
在Python中, 要寫一個完整的「符元化類 Tokenizer Class」, 這個Class需要的功能有: 1.「編碼 Encode」:將「文本 Text」分割成「符元 Token」。 2.「詞彙 Vocabulary」:將「符元 Token」映射到「符元ID TokenID
Thumbnail
本章節旨在介紹 TypeScript 的基本資料型別,包括內建型別、型別轉換、自訂型別、元組、集合、陣列、和字典型別。透過理解和使用這些型別,可以提高代碼的可讀性和可維護性。
解讀JSON 字串 首先,你需要使用 Python 的 json 模組來解讀JSON 字串。 JSON的基本結構: 由花括號 {} 包圍,內部是鍵值對的集合,每個鍵值對之間用逗號分隔。 鍵是字串類型,值可以是任何JSON支持的資料類型(字串、數字、布林值、陣列、物件或 null)。 {
Thumbnail
本文介紹了串列運算式的應用,以及與Lambda匿名函式方法的比較,並提供了程式範例。串列運算式提供了一種簡潔的語法,用於創建、轉換和過濾列表。lambda函式用於創建匿名函式,通常用於簡單的操作。建議在比較複雜的情況下使用一般for迴圈加if來表示。
Thumbnail
列表(List)和元組(Tuple)都是 Python 中用來存儲集合元素的數據結構,兩者看起來很像,在初學時很容易搞混,所以觀念要建立好。 可以把列表(List)和元組(Tuple)想像成是一個容器,什麼元素都可以塞
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,