【Python 基礎語法 #6】python set() 用法整理 - 快速找出重複的資料內容

前言

這篇我們要來研究 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: