如果你需要一個 Python 物件來當作數學上的集合使用,那麼可以使用 Python 當中的集合。Python 的集合跟數學上的集合一樣,具有元素不可重覆等特性,其基本操作方法如下:
s1 = {1, 2, 1, 2, 3, 4, 4, 5} print(s1) s2 = set([1, 2, 1, 2, 3, 4, 4, 5]) print(s2) s3 = set() s3.add(1) s3.add(2) s3.add(1) s3.add(2) s3.add(3) s3.add(4) s3.add(4) s3.add(5) print(s3) print(len(s1), len(s2), len(s3))在上述範例中,你應該可以發現,即使我們特意地試圖加入重複的元素,但每個元素在集合裡面還是只會出現一次。
需要刪除元素時,可以使用「remove」或者「discard」,兩者的差別在於前者會在沒有元素時噴出錯誤,而後者不會:
s = set([1, 2, 3, 4, 5, 6, 7]) s.remove(1) print(s) s.discard(2) print(s) s.discard(99) print(s) s.remove(99) print(s)若要在判斷集合中是否有該元素,跟字典一樣可以用 in 來進行:
s = set([1, 2, 3, 4, 5, 6, 7]) print(1 in s) print('a' in s) print('x' not in s) # 或 print(not 'x' in s)若要進行聯集或交集的運算,可以分別使用「union」和「intersection」:
s1 = set([1, 2, 3, 4, 5]) s2 = set([4, 5, 6, 7, 8]) s3 = s1.union(s2) print(s3) s4 = s1.intersection(s2) print(s4)若是要做差集,則可以使用「difference」,或者直接使用減號:
s1 = set([1, 2, 3, 4, 5]) s2 = set([4, 5, 6, 7, 8]) s3 = s1 - s2 print(s3) s4 = s1.difference(s2) print(s4) s5 = s2 - s1 print(s5) s6 = s2.difference(s1) print(s6)