第10天:集合(Set)
課程簡介
集合(Set)是一種無序且不重複的元素集合。集合最常用於去除重複元素、檢查關係(如聯集、交集、差集等)。今天我們將學習如何建立集合、操作集合,以及如何使用集合進行不同的集合運算。
學習內容
1. 建立集合
集合可以使用大括號 {}
或者 set()
函數來創建。需要注意的是,集合中的元素是無序的,且不允許重複。
範例:
1
2
3
4
5
6
7
# 使用大括號建立集合
fruits = {"apple", "banana", "cherry", "apple"}
print(fruits) # 輸出: {'apple', 'banana', 'cherry'} (重複的元素被自動去除)
# 使用 set() 函數建立集合
numbers = set([1, 2, 3, 4, 4, 5])
print(numbers) # 輸出: {1, 2, 3, 4, 5}
2. 新增與刪除元素
- 使用
add()
方法可以向集合中新增元素。 - 使用
remove()
或discard()
方法來移除元素,remove()
若元素不存在會報錯,而discard()
不會。 - 使用
pop()
方法可以移除集合中的任意一個元素。
範例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fruits = {"apple", "banana", "cherry"}
# 新增元素
fruits.add("orange")
print(fruits) # 輸出: {'apple', 'banana', 'cherry', 'orange'}
# 移除元素
fruits.remove("banana")
print(fruits) # 輸出: {'apple', 'cherry', 'orange'}
# 使用 discard 不會報錯
fruits.discard("banana") # 不會有錯誤
# 使用 pop() 移除隨機元素
fruits.pop()
print(fruits) # 會移除任意元素
3. 集合運算
3.1 聯集(Union)
聯集會返回兩個集合中所有不重複的元素,可以使用 |
運算符或 union()
方法。
範例:
1
2
3
4
5
6
7
8
a = {1, 2, 3}
b = {3, 4, 5}
# 使用 | 運算符
print(a | b) # 輸出: {1, 2, 3, 4, 5}
# 使用 union() 方法
print(a.union(b)) # 輸出: {1, 2, 3, 4, 5}
3.2 交集(Intersection)
交集會返回兩個集合中共同的元素,可以使用 &
運算符或 intersection()
方法。
範例:
1
2
3
4
5
6
7
8
a = {1, 2, 3}
b = {3, 4, 5}
# 使用 & 運算符
print(a & b) # 輸出: {3}
# 使用 intersection() 方法
print(a.intersection(b)) # 輸出: {3}
3.3 差集(Difference)
差集會返回只存在於第一個集合而不在第二個集合中的元素,可以使用 -
運算符或 difference()
方法。
範例:
1
2
3
4
5
6
7
8
a = {1, 2, 3}
b = {3, 4, 5}
# 使用 - 運算符
print(a - b) # 輸出: {1, 2}
# 使用 difference() 方法
print(a.difference(b)) # 輸出: {1, 2}
3.4 對稱差集(Symmetric Difference)
對稱差集會返回兩個集合中不共同的元素,可以使用 ^
運算符或 symmetric_difference()
方法。
範例:
1
2
3
4
5
6
7
8
a = {1, 2, 3}
b = {3, 4, 5}
# 使用 ^ 運算符
print(a ^ b) # 輸出: {1, 2, 4, 5}
# 使用 symmetric_difference() 方法
print(a.symmetric_difference(b)) # 輸出: {1, 2, 4, 5}
4. 集合的其他操作
len()
:返回集合的大小。clear()
:清空集合。in
:檢查元素是否存在於集合中。
範例:
1
2
3
4
5
6
7
8
9
10
11
fruits = {"apple", "banana", "cherry"}
# 集合的長度
print(len(fruits)) # 輸出: 3
# 檢查元素是否存在
print("apple" in fruits) # 輸出: True
# 清空集合
fruits.clear()
print(fruits) # 輸出: set()
教學重點
- 集合的定義:學會如何創建集合,理解集合中元素的無序性和不重複性。
- 新增與刪除元素:掌握
add()
、remove()
、discard()
和pop()
方法的使用。 - 集合運算:了解如何進行聯集、交集、差集和對稱差集運算。
- 集合的其他操作:如
len()
、clear()
和in
的應用。
任務
- 建立一個包含 5 個不同數字的集合,新增一個新數字,並刪除其中一個數字。
- 使用集合運算找出兩個數字集合的聯集、交集和差集。
- 撰寫一個程式,檢查某個字是否在一個字串轉換為集合的結果中。
- 清空一個集合,並確認它已變成空集合。
本文章以 CC BY 4.0 授權