'''
已知兩個列表:
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中的演算法中的交並集,所用到的容器不一定要是不能有重複元素.並集等的結果是排好序的乙個集合.預設是通過 來比較.所以按照預設操作 容...