本篇介紹 Python set 用法與範例,Python set 物件是無序的集合(unordered collection),set 很重要的精隨是 set 不會包含重複的資料,以下為 Python set 的基本用法與範例。
以下 Python set 用法內容分為這幾部份,
- Python 初始化 set
- Python set 加入元素
- Python 印出 set 裡所有元素
- Python set 刪除元素
- Python 測試某元素是否在 set 裡
- 兩個 set 的交集
- 兩個 set 的聯集
- 兩個 set 的差集
- 兩個 set 的對稱差集
Python 初始化 set
Python set 集合初始化元素使用 {}
來包住元素,也可以帶入 set() 建構子,但若要建立空的 set 要使用 set()
,使用 s = {}
是會建立空 dict,不要搞錯囉!
Python 官方文件寫明 set 物件是無序,即使你印出來時發現是按照順序的,所以在使用 set 時請記得不保證有序的,
另外 set 裡是不會包含重複的元素,1
2
3
4
5
6
7
8
9
10
11
12
13
14s1 = set()
s2 = set((2, 3, 1)) # 帶入 tuple 資料來初始化
s3 = {1, 2, 3, 4, 5}
s4 = {1, 1, 2, 3, 3}
print(s1)
print(s2)
print(s3)
print(s4)
print(type(s1))
print(type(s2))
print(type(s3))
print(type(s4))
結果如下,1
2
3
4
5
6
7
8set()
{1, 2, 3}
{1, 2, 3, 4, 5}
{1, 2, 3}
<class 'set'>
<class 'set'>
<class 'set'>
<class 'set'>
Python set 加入元素
Python set 使用 add() 來加入新元素,用法如下,
要注意 set 不會包含重複的元素唷!1
2
3
4
5
6s = {1, 2, 3, 4, 5}
s.add(6)
s.add(7)
s.add(7)
print(s)
結果如下,1
{1, 2, 3, 4, 5, 6, 7}
Python 印出 set 裡所有元素
這是 Python 最簡單印出 set 的方法,用法如下,1
2s = {1, 2, 3, 4, 5}
print(s)
或者用 for 迴圈迭代,像下面這樣寫,
要注意 set 無法像 list 那樣使用 index 索引元素,1
2
3s = {1, 2, 3, 4, 5}
for i in s:
print(i)
結果如下,1
2
3
4
51
2
3
4
5
Python set 刪除元素
Python set 使用 remove() 來移除刪除元素,
要注意移除一個不存在的元素會報錯(KeyError)唷!1
2
3
4
5s = {1, 2, 3, 4, 5}
s.remove(5)
#s.remove(6) # Error
print(s)
結果如下,1
{1, 2, 3, 4}
Python 測試某元素是否在 set 裡
Python 如果要測試某元素是否在 set 裡的話可以使用 in 關鍵字,用法如下,1
2
3
4fruits = {'apple','banana','orange','lemon'}
print('tomato' in fruits)
result = 'apple' in fruits
print(result)
結果如下,1
2False
True
兩個 set 的交集
這邊介紹 Python 怎麼取出兩個 set 的交集(intersection),Python 取 set 的交集要使用 &
符號就會取出兩 set 中相同的元素,交集的用法範例如下,1
2
3
4fruits1 = {'apple','banana','orange','lemon'}
fruits2 = {'tomato','apple','banana'}
print(fruits1 & fruits2)
print(fruits2 & fruits1)
結果如下,1
2{'apple', 'banana'}
{'apple', 'banana'}
你也可以使用 intersection() 來取得交集,intersection() 用法範例如下,1
2
3
4nums1 = {1,2,3,4,5}
nums2 = {2,4,6,8,10}
print(nums1.intersection(nums2))
print(nums2.intersection(nums1))
結果如下,顛倒使用結果都相同,1
2{2, 4}
{2, 4}
兩個 set 的聯集
這邊介紹 Python 怎麼取出兩個 set 的聯集(union),Python 取 set 的聯集要使用 |
符號就會取出兩 set 中所有的元素,聯集的用法範例如下,1
2
3
4fruits1 = {'apple','banana','orange','lemon'}
fruits2 = {'tomato','apple','banana'}
print(fruits1 | fruits2)
print(fruits2 | fruits1)
結果如下,1
2{'orange', 'banana', 'tomato', 'lemon', 'apple'}
{'orange', 'banana', 'tomato', 'lemon', 'apple'}
你也可以使用 union() 來取得聯集,union() 用法範例如下,1
2
3
4nums1 = {1,2,3,4,5}
nums2 = {2,4,6,8,10}
print(nums1.union(nums2))
print(nums2.union(nums1))
結果如下,顛倒使用結果都相同,1
2{1, 2, 3, 4, 5, 6, 8, 10}
{1, 2, 3, 4, 5, 6, 8, 10}
兩個 set 的差集
這邊介紹 Python 怎麼取出兩個 set 的差集(difference),Python 取 set 的差集要使用 -
符號就會取出 set 與另外一個 set 的差集,舉例來說,fruits1-fruits2 會得到 fruits1 set 元素且不包含 fruits2 set 的元素,如果是 fruits2-fruits1 會得到 fruits2 set 元素且不包含 fruits1 set 的元素,差集的用法範例如下,1
2
3
4fruits1 = {'apple','banana','orange','lemon'}
fruits2 = {'orange','lemon','tomato'}
print(fruits1 - fruits2)
print(fruits2 - fruits1)
結果如下,1
2{'apple', 'banana'}
{'tomato'}
你也可以使用 difference() 來取得差集,difference() 用法範例如下,1
2
3
4nums1 = {1,2,3,4,5}
nums2 = {4,5,6,7,8}
print(nums1.difference(nums2))
print(nums2.difference(nums1))
結果如下,1
2{1, 2, 3}
{8, 6, 7}
兩個 set 的對稱差集
這邊介紹 Python 怎麼取出兩個 set 的對稱差集(symmetric difference),Python 取 set 的對稱差集要使用 ^
符號就會取出兩 set 不重複的元素或非交集的元素,對稱差集的用法範例如下,1
2
3
4fruits1 = {'apple','banana','orange','lemon'}
fruits2 = {'orange','lemon','tomato'}
print(fruits1 ^ fruits2)
print(fruits2 ^ fruits1)
結果如下,1
2{'tomato', 'banana', 'apple'}
{'tomato', 'banana', 'apple'}
你也可以使用 symmetric_difference() 來取得對稱差集,symmetric_difference() 用法範例如下,1
2
3
4nums1 = {1,2,3,4,5}
nums2 = {4,5,6,7,8}
print(nums1.symmetric_difference(nums2))
print(nums2.symmetric_difference(nums1))
結果如下,顛倒使用結果都相同,1
2{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}
下一篇將介紹 dict 字典的用法
以上就是 Python set 用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!
其他參考
Built-in Types set — Python 3 documentation
https://docs.python.org/3/library/stdtypes.html?#set
其它相關文章推薦
如果你想學習 Python 相關技術,可以參考看看下面的文章,
Python 檢查 set 集合是否為空
Python 新手入門教學懶人包
Python str 字串用法與範例
Python list 串列用法與範例
Python dict 字典用法與範例
Python tuple 元組用法與範例