Python 中的 Set (集合) 是什麼?
在 Python 中,Set(集合) 是一種
無序:Set 中的元素沒有特定的順序,這意味著不能通過索引(像列表那樣)來訪問元素。
唯一性:Set 中的每個元素都是唯一的,重複的值會自動被過濾掉。
可變:Set 本身是可變的,可以增加或刪除元素,但 Set 中的元素必須是不可變的(如整數、字串、元組等)。
創建 Set
使用大括號 {} 定義一個 Set。
使用 set() 函數來創建空集合。
# 創建一個 Set,並自動去除重複元素
my_set = {1, 2, 3, 4, 5, 5}
print(my_set) # Output: {1, 2, 3, 4, 5}
# 創建空集合
empty_set = set()
print(empty_set) # Output: set()
不一定要先用 set() 來創建一個集合。你可以直接使用大括號 {} 來創建一個集合並初始化其元素。例如:
# 使用大括號直接創建一個集合
my_set = {1, 2, 3, 4, 5}
print(my_set) # Output: {1, 2, 3, 4, 5}
但是,如果你想創建空集合,就必須使用 set(),因為 {} 會被解釋為空字典。這是唯一的情況需要用到 set() 函數來明確創建集合。
# 創建空集合,必須用 set()
empty_set = set()
print(empty_set) # Output: set()
# 注意:如果你用 {} 創建,會得到空字典
empty_dict = {}
print(type(empty_dict)) # Output: <class 'dict'>
所以只有當你需要創建空集合時,才必須使用 set()。其他情況下,直接使用 {} 並填入元素即可。
操作 | 描述 | 範例 |
---|---|---|
add() |
將一個元素添加到集合中 | my_set.add(6) |
remove() |
從集合中移除指定元素,若元素不存在則報錯 | my_set.remove(3) |
discard() |
從集合中移除指定元素,若元素不存在則不報錯 | my_set.discard(10) |
clear() |
移除集合中的所有元素 | my_set.clear() |
union() |
返回兩個集合的聯集(所有元素的集合) | set1.union(set2) |
intersection() |
返回兩個集合的交集(共同的元素) | set1.intersection(set2) |
difference() |
返回存在於第一個集合但不存在於第二個集合的元素 | set1.difference(set2) |
issubset() |
檢查一個集合是否是另一個集合的子集 | set1.issubset(set2) |
issuperset() |
檢查一個集合是否是另一個集合的超集 | set1.issuperset(set2) |
in |
檢查某個元素是否存在於集合中 | 3 in my_set → True |