Python - 集合練習
大家好,未來的 Python 專家!今天,我們將深入 Python 集合的神奇世界。如果你從未編過程式也別擔心——我將成為你在這次興奮旅程中的友好導遊。在這個教程結束時,你將能夠像專家一樣變出集合!
什麼是集合?
在我們進行練習之前,先快速了解 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