定義
差集: A,B是兩個集合,所有屬於A且不屬於B的元素構成的集合, 就是差集。
交集: A,B是兩個集合,既屬於A又屬於B的元素構成的集合, 就是交集。
並集: A,B是兩個集合,把他們所有的元素合併在一起組成的集合,就是並集。
求兩個list差集
如有下面兩個列表:
listA = [1,2,3,4] listB = [2,3,4]
想要的結果是[1]
有3種方法:
1. 迴圈遍歷法
ret = [] for i in listA: if i not in listB: ret.append(i) print(ret)
2. 運算子法
ret = list(set(listA) ^ set(listB)) print(ret)
3. difference函式法
list(set(listA).difference(set(listB))) print(ret)
很明顯第二種、第三種方法更加優雅。
求兩個list的並集
程式碼如下:
ret = list(set(listA).union(set(listB))) print(ret)
求兩個list的交集
ret = list(set(listA).intersection(set(listB))) print(ret)
總結:
這三個集合的求法都可以是,將list轉成set以後,使用set的各種方法去處理。
注:以上程式碼在Python3下測試透過