前言
這篇我們要來研究 python set 使用方法,
在解 leetcode 相關的題目的時候,
很常會有需要「找重複內容」的時候,這時 set() 就能發揮很大的功能。
初始化
能初始化建立 set 的方式有很多種,
我們在解 leetcode 題目的時候,
最常使用把「題目的一個資料型別」直接轉為「set」的格式。
過程中,我們就會順便把「重複的內容濾掉」,
這樣就可以解很多處理重複的問題。
myset = set()
myset = {1,2,3}
myset = set( [ 1, 2, 3 ] ) # list -> set
myset = set( ( 1, 2, 3 ) ) # tuple -> set
# set = {} # 注意:此為常見錯誤示範!
特別注意:這裡有個常見錯誤是 set = 「{}」 並不會成功宣告空 set,而是要使用 「set()」
應用
說到 set 最經常的應用,就是拿來取「交集」、「聯集」、「差集」了!
這些幾乎都是我們在處理重複性問題時會需要的東西。
聯集
聯集我們會使用來解兩個集合「綜合起來,不重複的所有項目」
print(setA | setB)
交集
交集我們會使用來解兩個集合「共同重複」的項目
print(setA & setB)
差集
差集我們常用來解,以自己為中心,扣掉另外一個集合的元素,
剩下「自己獨有」的元素
取得 A 獨有元素
print(setA - setB)
取得 B 獨有元素
print(setB - setA)
結果
Reference
更完整的 set 整理推薦以下連結,我這邊目前只寫到我自己需要用的部分XD: