更新時(shí)間:2022年09月27日18時(shí)42分 來源:傳智教育 瀏覽次數(shù):
數(shù)學(xué)中,兩個(gè)集合關(guān)系的常見操作包括:交集、并集、差集、補(bǔ)集。設(shè)A.B是兩個(gè)集合,集合之間的關(guān)系如下。
(1)交集是指屬于集合A且屬于集合B的元素所組成的集合。
(2)并集是指集合A和集合B的元素合并在一起組成的集合。
(3)差集是指屬于集合4但不屬于集合B的元素所組成的集合。
(4)補(bǔ)集是指屬于集合A和集合B但不同時(shí)屬于兩者的元素所組成的集合。
Python 中集合之間支持前面所介紹的4種操作,操作邏輯與數(shù)學(xué)定義完全相同。Python提供了4種操作符以實(shí)現(xiàn)這4項(xiàng)操作,分別是交集(&)、并集(l)、差集(-)、補(bǔ)集(∧)。下面以兩個(gè)圓形表示集合A和B,并使用陰影部分顯示4種操作的結(jié)果,如圖下圖所示。
除此之外,Python還提供了4個(gè)增強(qiáng)操作符:l=、-=、&=、“=,它們與前面4個(gè)操作符的區(qū)別是,前者是生成了一個(gè)新的集合,而后者是更新了位于操作符左側(cè)的集合。接下來通過一張表羅列集合S和T之間關(guān)系的常見操作,具體如表所示。
假設(shè)有集合a={1,11,21,31,17}和集合b={0,11,20,17,30),它們執(zhí)行取交集、并集、差集、補(bǔ)集的示例如下:
>>>a={1, 11, 21, 31, 17} >>> b={0,11,20,17,30} >>>a|b #取a和b的并集 {0, 1, 11, 17, 20, 21, 30, 31} >>> a-b #取a和b的差集 {1,21,31} >>> a&b #取a和b的交集 {17, 11} >>> a∧b #取a和b的補(bǔ)集 {0, 1, 20, 21, 30, 31}
對(duì)于兩個(gè)集合A與B,如果集合A中的所有元素都是集合B的元素,那么集合B包含集合A,也就是說集合A是集合B的子集,集合B是集合A的超集;如果集合A中的所有元素都是集合B中的元素,且集合B中至少有一個(gè)元素不屬于集合A,那么集合A是集合B的真子集,集合B是集合A的真超集。
Python 中使用的比較運(yùn)算符可以用來檢查某個(gè)集合是否為其他集合的子集或者超集,其中,“<”或者“<=”運(yùn)算符用于判斷真子集和子集,“>”和“>=”運(yùn)算符用于判斷的是真超集和超集。需要注意的是,“<”和“>”運(yùn)算符支持的是嚴(yán)格意義定義的子集和超集,它們不允許兩個(gè)集合相等;而“<=”和“>=”運(yùn)算符支持的是非嚴(yán)格意義定義的子集和超集,它們?cè)试S兩個(gè)集合是相等的。例如:
>>> set_ one = set('what') >>> set_two = set('hat') >>> set_one < set_two #判斷set_one是否為set_two 的嚴(yán)格子集 False >>> set_one >set_two #判斷set_one是否為set two的嚴(yán)格超集 True
北京校區(qū)