Python - 集合練習

大家好,未來的 Python 專家!今天,我們將深入 Python 集合的神奇世界。如果你從未編過程式也別擔心——我將成為你在這次興奮旅程中的友好導遊。在這個教程結束時,你將能夠像專家一樣變出集合!

Python - Set Exercises

什麼是集合?

在我們進行練習之前,先快速了解 Python 中的集合是什麼。想象一下你有一袋彈珠,但每顆彈珠在袋子裡只能出現一次。這基本上就是 Python 中的集合——一組唯一的項目。

集合是无序的,这意味着項目沒有特定的位置。它們也是可變的,所以我們可以添加或刪除項目。然而,項目本身必須是不可變的(如數字或字符串,而不是列表)。

現在,讓我們捲起袖子開始編程!

Python 集合練習 1:創建和操作集合

創建一個集合

讓我們從創建一個簡單的集合開始:

fruits = {"apple", "banana", "cherry"}
print(fruits)

當你運行這段代碼時,你會看到:

{'cherry', 'banana', 'apple'}

注意到我們輸入的順序和輸出不同嗎?那是因为集合是无序的!

向集合中添加項目

現在,讓我們向集合中添加更多水果:

fruits.add(" dragonfruit ")
print(fruits)

fruits.update(["elderberry", "fig"])
print(fruits)

輸出:

{'cherry', 'banana', 'apple', 'dragonfruit'}
{'fig', 'cherry', 'banana', 'elderberry', 'apple', 'dragonfruit'}

看到我們用 add() 添加單個項目,用 update() 添加多個項目嗎?這就像向你的袋子裡添加一顆彈珠和倒進一把彈珠一樣!

從集合中刪除項目

讓我們刪除一些水果:

fruits.remove("banana")
print(fruits)

fruits.discard("grape")  # 即使 "grape" 不在集合中,這也不會引發錯誤
print(fruits)

輸出:

{'fig', 'cherry', 'elderberry', 'apple', 'dragonfruit'}
{'fig', 'cherry', 'elderberry', 'apple', 'dragonfruit'}

remove() 如果項目不存在將引發錯誤,而 discard() 不會。這就像小心翼翼地挑出一顆特定的彈珠與隨意尋找一顆來刪除一樣。

Python 集合練習 2:集合操作

現在我們已經掌握了基礎知識,讓我們來玩多個集合!

集合的聯合

想象你和你的朋友都有彈珠袋。聯合就是你有的所有獨特彈珠。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
union_set = set1.union(set2)
print(union_set)

輸出:

{1, 2, 3, 4, 5, 6, 7, 8}

集合的交集

交集就是你們共同擁有的彈珠。

intersection_set = set1.intersection(set2)
print(intersection_set)

輸出:

{4, 5}

集合的差異

差異就是你有而你的朋友沒有的彈珠。

difference_set = set1.difference(set2)
print(difference_set)

輸出:

{1, 2, 3}

Python 集合練習 3:高級集合操作

準備好升級了嗎?讓我們來解決一些更高级的操作!

對称差異

這會給我們所有在任一集合中但不在兩個集合中都有的彈珠。

symmetric_difference = set1.symmetric_difference(set2)
print(symmetric_difference)

輸出:

{1, 2, 3, 6, 7, 8}

子集和超集

讓我們檢查一個集合是否包含在另一個集合內:

set3 = {1, 2, 3}
print(set3.issubset(set1))  # set3 是否是 set1 的子集?
print(set1.issuperset(set3))  # set1 是否是 set3 的超集?

輸出:

True
True

這就像檢查你的所有彈珠是否也在你朋友的大型收藏中一樣!

冻結集合

有時,我們需要一個不能更改的集合。這裡有 冻結集合:

frozen_fruits = frozenset(["apple", "banana", "cherry"])
print(frozen_fruits)

# 這將引發錯誤:
# frozen_fruits.add("dragonfruit")

輸出:

frozenset({'cherry', 'banana', 'apple'})

將冻結集合想成一袋被封在冰裡的彈珠——你可以看,但不能碰!

集合方法總結

這裡有一個我們學過的集合方法的手冊:

方法 描述
add() 向集合中添加一個元素
update() 使用另一個集合或可迭代對象中的元素更新集合
remove() 刪除指定的元素(如果找不到則引發錯誤)
discard() 刪除指定的元素(如果找不到則不會引發錯誤)
union() 返回包含集合聯合的集合
intersection() 返回包含集合交集的集合
difference() 返回包含集合差的集合
symmetric_difference() 返回包含在任一集合中但不在兩個集合中都有的元素的集合
issubset() 檢查一個集合是否是另一個集合的子集
issuperset() 檢查一個集合是否是另一個集合的超集

就是這樣,大家!你剛剛通過集合提升了你的 Python 技能。記住,練習成就完美,所以繼續這些概念吧。在你意識到之前,你將能夠像真正的 Python 巫師一樣操作集合!

Credits: Image by storyset