集合對稱差集和總結

2021-10-04 20:35:52 字數 993 閱讀 8514

'''

已知兩個列表:

l1=[2,3,5,8,0]

l2=[5,3,9,0]

找出兩個列表的不同元素

找出兩個列表的共同元素

'''l1=[2

,3,5

,8,0

]l2=[5

,3,9

,0]s1=

set(l1)

s2=set

(l2)

#對稱差集

result=

(s1|s2)

-(s1&s2)

print

(result)

result=s1^s2 #在兩個列表中不一樣的元素 symmetri_difference()

print

(result)

'''difference_update

s1=s1.difference(s2)

print(s1)

相同的方式如下:

s1.difference_update(s2) 差集並賦值

intersection_update() 交集並賦值

union_update() 並集並賦值

symmetric_difference_update() 對稱差集並賦值

'''s1.difference_update(s2)

print

(s1)

'''關鍵字:set

作用:去重

符號:- & | ^

內建函式:

增加:add() update()

刪除:remove() discard() pop() clear()

運算:difference() intersection() union() symmetric_difference()

'''

執行結果:

兩個集合求對稱差集

對稱差集,兩個集合的並集,減去交集。比如,集合1,2,3和集合3,3,4,5的對稱差是集合1,2,4,5。想到的解法,將兩個排序,兩個集合分別用兩個工作指標i,j。比較兩個指標指向的元素,相同就都後移,不相同,更小的指標後移。以下 給出了求對稱差集數量的 public static int dist...

STL演算法 交集,並集,差集,對稱差

學數學時我們知道人集合的概念,所謂集合就是符合某個條件的一堆元素.針對它們做的最多的操作就是求交集,並集,差集,對稱差集.不過集合有個特性就是不能有重複的元素.而stl中的演算法中的交並集,所用到的容器不一定要是不能有重複元素.並集等的結果是排好序的乙個集合.預設是通過 來比較.所以按照預設操作 容...

STL演算法 交集,並集,差集,對稱差

學數學時我們知道人集合的概念,所謂集合就是符合某個條件的一堆元素.針對它們做的最多的操作就是求交集,並集,差集,對稱差集.不過集合有個特性就是不能有重複的元素.而stl中的演算法中的交並集,所用到的容器不一定要是不能有重複元素.並集等的結果是排好序的乙個集合.預設是通過 來比較.所以按照預設操作 容...