2024-10-28|閱讀時間 ‧ 約 0 分鐘

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

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

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.