日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
無序的集合:Python中的數(shù)學(xué)集合運(yùn)算

set是Python中無序的集合,它可以用于計(jì)算標(biāo)準(zhǔn)數(shù)學(xué)運(yùn)算,例如交集、并集、差集和對(duì)稱差集,Other集合(例如列表、元組和字典)不支持集合操作,Dict視圖對(duì)象類似于集合,可以進(jìn)行集合操作。本文將詳細(xì)探討set對(duì)象支持的數(shù)學(xué)運(yùn)算。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、北辰網(wǎng)絡(luò)推廣、小程序制作、北辰網(wǎng)絡(luò)營(yíng)銷、北辰企業(yè)策劃、北辰品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供北辰建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

先來看一下Set對(duì)象支持的數(shù)學(xué)運(yùn)算:

  • union()
  • update()
  • intersection()
  • intersection_update()
  • difference()
  • difference_update()
  • symmetric_difference()
  • symmetric_difference_update()
  • isdisjoint()
  • issubset()
  • issuperset()

Set運(yùn)算操作可以通過兩種方式完成:使用方法或運(yùn)算符。

‘union()’

返回一個(gè)新集合,其中包含該set和other集合中的元素,使用union()或“|“算子。

語法:

 
 
 
 
  1. union(*others) 
  2. set | other | ... 

示例1:找到兩個(gè)集合的并集—A和B

返回一個(gè)包含集合A和集合B中的元素的新集合。但元素不會(huì)重復(fù),集合中的所有元素都是唯一的。

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6,8} 
  3. print (A.union(B))#Output:{1, 2, 3, 4, 5, 6, 8} 
  4. print (A|B)#Output:{1, 2, 3, 4, 5, 6, 8} 

示例2:查找兩個(gè)以上集合的并集

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6,8,10} 
  3. C={1,3,5,7,9} 
  4. print (A|B|C)#Output:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 
  5. print (A.union(B,C))#Output:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 

union()方法和|之間的區(qū)別:

  • union():接受任何可迭代的參數(shù)
  • |運(yùn)算符:僅接受set作為參數(shù),否則將引發(fā)TypeError。

示例3:在union()方法中將iterable用作參數(shù)

 
 
 
 
  1. A={1,2,3,4,5} 
  2. #iterable is given as list 
  3. print (A.union([2,4,6]))#Output:{1, 2, 3, 4, 5, 6} 
  4. #iterable is given as tuple 
  5. print (A.union((2,4,6)))#Output:{1, 2, 3, 4, 5, 6} 
  6. #iterable is given as range object 
  7. print (A.union(range(5,10)))#Output:{1, 2, 3, 4, 5, 6, 7, 8, 9} 
  8. #iterable is given as a dictionary 
  9. print (A.union({'a':6,'b':7}))#Output:{1, 2, 3, 4, 5, 'b', 'a'} 

示例4:為|提供參數(shù)iterable

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B=[1,2,3] 
  3. print (A|B) 
  4. #Output:TypeError: unsupported operand type(s) for |: 'set' and 'list' 

‘update()’

更新集合,并從other集合中添加元素,元素不會(huì)重復(fù),集合中的所有元素都是唯一的。通過使用update() 或使用|=運(yùn)算符來執(zhí)行,返回類型為None,將修改原始集本身。

語法:

 
 
 
 
  1. update(*others) 
  2. set |= other | ... 

示例1:在A和B兩個(gè)集合之間調(diào)用update()

通過添加兩個(gè)集合中的元素來更新集合A。

 
 
 
 
  1. #update() 
  2. A={1,2,3,4,5} 
  3. B={4,5,6,7,8} 
  4. print (A.update(B)) #Output: None 
  5. print (A) #Output: {1, 2, 3, 4, 5, 6, 7, 8}A={1,2,3,4,5} 
  6. B={4,5,6,7,8} 
  7. A|=B 
  8. print (A) #Output: {1, 2, 3, 4, 5, 6, 7, 8} 

示例2:在兩個(gè)以上集合之間調(diào)用update()

 
 
 
 
  1. #update() 
  2. A={1,2,3} 
  3. B={3,4,5} 
  4. C={5,6,7} 
  5. print (A.update(B,C)) #Output: None 
  6. print (A) #Output: {1, 2, 3, 4, 5, 6, 7} 
  7. A={1,2,3} 
  8. B={3,4,5} 
  9. C={5,6,7} 
  10. A|=B|C 
  11. print (A) #Output: {1, 2, 3, 4, 5, 6, 7} 

update() 方法和|=運(yùn)算符之間的區(qū)別:

  • update() :接受任何可迭代的參數(shù)。
  • =運(yùn)算符:僅接受set作為參數(shù),否則將引發(fā)TypeError。

示例3:在update() 方法中將iterable用作參數(shù)

 
 
 
 
  1. A={1,2,3} 
  2. #iterable is given as list 
  3. print (A.update([2,3,4]))#Output:None 
  4. print (A)#Output:{1,2,3,4} 
  5. #iterable is given as tuple 
  6. A={1,2,3} 
  7. A.update((2,3,4)) 
  8. print (A)#Output:{1,2,3,4} 
  9. #iterable is given as range object 
  10. A={1,2,3} 
  11. A.update(range(2,5)) 
  12. print (A)#Output:{1,2,3,4} 
  13. #iterable is given as a dictionary 
  14. A={1,2,3} 
  15. A.update({2:'a',3:'b'}) 
  16. print (A) #Output:{1, 2, 3} 

示例4:為|=運(yùn)算符提供參數(shù)iterable:

 
 
 
 
  1. #iterable is given as tuple 
  2. A={1,2,3} 
  3. B=(3,4) 
  4. A|=B#Output:TypeError: unsupported operand type(s) for |=: 'set' and 'tuple' 

‘intersection()’

返回一個(gè)具有該集合和other集合共同元素的新集合,通過intersection()或使用&運(yùn)算符來執(zhí)行。

語法:

 
 
 
 
  1. intersection(*others) 
  2. set & other & ... 

示例1:找到兩個(gè)集合的交集—A和B

返回一個(gè)新集合,其中包含集合A和集合B中的共同元素。

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6,8} 
  3. #intersection is performed by intersection() method or & operator 
  4. print (A.intersection(B))#Output:{2,4} 
  5. print (A&B)#Output:{2,4} 

示例2:找到兩個(gè)以上的交集

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6,8,10} 
  3. C={2,4} 
  4. print (A&B&C)#Output:{2,4} 
  5. print (A.intersection(B,C))#Output:{2,4} 

intersection()方法和&運(yùn)算符之間的區(qū)別:

  • intersection():接受任何可迭代的參數(shù)。
  • &運(yùn)算符:僅接受set參數(shù),否則將引發(fā)TypeError。

示例3:在intersection()方法中將iterable用作參數(shù)

 
 
 
 
  1. A={1,2,3,4,5} 
  2. #iterable is given as list 
  3. print (A.intersection([1,4,6]))#Output:{1,4} 
  4. #iterable is given as tuple 
  5. print (A.intersection((2,4,6)))#Output:{2,4} 
  6. #iterable is given as range object 
  7. print (A.intersection(range(5,10)))#Output:{5} 
  8. #iterable is given as a dictionary 
  9. print (A.intersection({1:'a','b':7}))#Output:{1} 

示例4:為&運(yùn)算符提供參數(shù)iterable

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B=[1,2,3] 
  3. print (A&B) 
  4. #Output:TypeError: unsupported operand type(s) for &: 'set' and 'list' 

‘intersection_update()’

更新集合,只保留集合和other中共同的元素。可以通過使用 intersection_update()或使用&=運(yùn)算符來執(zhí)行,返回類型為None,將修改原始集本身。

語法:

 
 
 
 
  1. intersection_update(*others) 
  2. set &= other & … 

示例1:找到兩個(gè)集合A和B之間的 intersection_update()

通過僅保留在兩個(gè)集合中找到的元素來更新集合A。

 
 
 
 
  1. #intersection_update() 
  2. A={1,2,3,4,5} 
  3. B={4,5,6,7,8} 
  4. print (A.intersection_update(B)) #Output: None 
  5. print (A) #Output: {4,5}A={1,2,3,4,5} 
  6. B={4,5,6,7,8} 
  7. A&=B 
  8. print (A) #Output: {4,5} 

‘difference()’

返回一個(gè)去除other中元素之后的新集合,通過difference() 或使用-運(yùn)算符來執(zhí)行。

語法:

 
 
 
 
  1. difference(*others) 
  2. set - other - ... 

5A9ce2dee869952e2e78.png" target="_blank">5A9ce2dee869952e2e78.png" alt="" title="" width="auto" height="auto" border="0">

示例1:找出A和B兩組之間的差異

返回一個(gè)新集合,其中包含在集合A而不在集合B中的元素。

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6,8} 
  3. print (A.difference(B))#Output:{1,3,5} 
  4. print (A-B)#Output:{1,3,5} 

示例2:找出兩個(gè)以上集合之間的差異

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6,8,10} 
  3. C={2,3} 
  4. print (A-B-C)#Output:{1,5} 
  5. print (A.difference(B,C))#Output:{1,5} 

difference()方法和-運(yùn)算符之間的區(qū)別:

  • difference():接受任何可迭代的參數(shù)
  • -運(yùn)算符:僅接受set作為參數(shù)。否則將引發(fā)TypeError。

示例3:在difference()方法中將iterable作為參數(shù)

 
 
 
 
  1. A={1,2,3,4,5} 
  2. #iterable is given as list 
  3. print (A.difference([1,2,3]))#Output:{4,5} 
  4. #iterable is given as tuple 
  5. print (A.difference((1,2,3)))#Output:{4,5} 
  6. #iterable is given as range object 
  7. print (A.difference(range(1,4)))#Output:{4,5} 
  8. #iterable is given as a dictionary 
  9. print (A.difference({1:'a',2:'b',3:'c'}))#Output:{4,5} 

示例4:為-運(yùn)算符提供參數(shù)iterable

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B=[1,2,3] 
  3. print (A-B) 
  4. #Output:TypeError: unsupported operand type(s) for -: 'set' and 'list' 

‘difference_update()’

從other集合中刪除該集合中的元素,通過使用-= 運(yùn)算符或使用difference_update() 方法來執(zhí)行,返回類型為None,將修改原始集本身。

句法:

 
 
 
 
  1. difference_update(*others) 
  2. set -= other | ... 

示例1:找出A和B兩組之間的差異

返回一個(gè)新集合,其中包含在集合A而不在集合B中的元素。

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6,8} 
  3. print (A.difference(B))#Output:{1,3,5} 
  4. print (A-B)#Output:{1,3,5} 

示例2:找出兩個(gè)以上集合之間的差異

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6,8,10} 
  3. C={2,3} 
  4. print (A-B-C)#Output:{1,5} 
  5. print (A.difference(B,C))#Output:{1,5} 

difference()方法和-運(yùn)算符之間的區(qū)別:

  • difference():接受任何可迭代的參數(shù)
  • -運(yùn)算符:僅接受set作為參數(shù)。否則將引發(fā)TypeError。

示例3:在difference()方法中將iterable作為參數(shù)

 
 
 
 
  1. A={1,2,3,4,5} 
  2. #iterable is given as list 
  3. print (A.difference([1,2,3]))#Output:{4,5} 
  4. #iterable is given as tuple 
  5. print (A.difference((1,2,3)))#Output:{4,5} 
  6. #iterable is given as range object 
  7. print (A.difference(range(1,4)))#Output:{4,5} 
  8. #iterable is given as a dictionary 
  9. print (A.difference({1:'a',2:'b',3:'c'}))#Output:{4,5} 

示例4:為-運(yùn)算符提供參數(shù)iterable

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B=[1,2,3] 
  3. print (A-B) 
  4. #Output:TypeError: unsupported operand type(s) for -: 'set' and 'list' 

‘difference_update()’

從other集合中刪除該集合中的元素,通過使用-= 運(yùn)算符或使用difference_update() 方法來執(zhí)行,返回類型為None,將修改原始集本身。

句法:

 
 
 
 
  1. difference_update(*others) 
  2. set -= other | ... 

示例1:找到兩個(gè)集合A和B之間的difference_update()

通過刪除集合A和集合B中都存在的元素來更新集合A。

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={2,4,6} 
  3. #Return type is None. 
  4. print (A.difference_update(B))#Output:None 
  5. #It will update the original set 
  6. print (A) #Output: {1,3,5} 
  7. # difference_update by using -= operator 
  8. A-=(B) 
  9. print (A) #Output: {1,3,5} 

示例2:查找兩個(gè)以上集合之間的difference_update

 
 
 
 
  1. #difference_update() will modify the original set. 
  2. A={1,2,3} 
  3. B={1} 
  4. C={2} 
  5. #Return type is None. 
  6. print (A.difference_update(B,C))#Output:None 
  7. #It will update the original set 
  8. print (A) #Output: {3} 
  9. # difference_update by using -= operator 
  10. A={1,2,3} 
  11. B={1} 
  12. C={2} 
  13. A-=B|C 
  14. print (A) #Output: {3} 

difference_update()方法與-=運(yùn)算符的區(qū)別:

  • difference_update():接受任何可迭代的參數(shù)
  • -=運(yùn)算符:僅接受set參數(shù),否則將引發(fā)TypeError。

示例3:在difference_update()方法中將iterable作為參數(shù)

 
 
 
 
  1. #iterable is given as list 
  2. A={1,2,3} 
  3. B=[1] 
  4. print (A.difference_update(B))#Output:None 
  5. print (A)#Output:{2,3} 

示例4:為-=運(yùn)算符提供參數(shù)iterable

 
 
 
 
  1. A={1,2,3} 
  2. B=[1] 
  3. A-=Bprint (A)#Output: TypeError: unsupported operand type(s) for -=: 'set' and 'list' 

‘symmetric_difference()’

返回一個(gè)新集合,該集合中的元素屬于集合或other,但不包含兩個(gè)集合共有的元素。通過symmetric_difference()或使用^運(yùn)算符來執(zhí)行。

語法:

 
 
 
 
  1. symmetric_difference(other) 
  2. set ^ other 

示例1:找到A和B兩組之間的對(duì)稱差

返回一個(gè)新集合,其中包含來自集合A和集合B的元素,但不包含兩個(gè)集合中共同的元素。

 
 
 
 
  1. A={1,2} 
  2. B={2,3} 
  3. print (A.symmetric_difference(B))#Output:{1,3} 
  4. print (A^B)#Output:{1,3} 

示例2:對(duì)稱差集僅適用于2個(gè)集合

多個(gè)集合不支持symmetric_difference()方法,如果給出兩個(gè)以上的集合,則會(huì)引發(fā)TypeError。

 
 
 
 
  1. A={1,2} 
  2. B={2,3,5} 
  3. C={3,4} 
  4. print (A.symmetric_difference(B,C))#Output:TypeError:symmetric_difference() takes exactly one argument (2 given) 

但是我們可以使用^找到多個(gè)集合的對(duì)稱差集

 
 
 
 
  1. A={1,2} 
  2. B={2,3,5} 
  3. C={3,4} 
  4. print (A^B^C)#Output:{1,4,5} 

symmetric_difference()方法和^運(yùn)算符之間的區(qū)別:

  • symmetric_difference():接受任何可迭代的參數(shù),但此方法不允許使用多個(gè)集合。
  • ^運(yùn)算符:它將僅接受set作為參數(shù)。否則,將引發(fā)TypeError。通過使用^運(yùn)算符,可以找到多個(gè)集合之間的對(duì)稱差集。

示例3:在symmetric_difference()方法中將iterable作為參數(shù)

 
 
 
 
  1. #iterable is given as list 
  2. A={1,2,3} 
  3. B=[1] 
  4. print (A.symmetric_difference(B))#Output:{2,3} 
  5. #iterable is given as tuple 
  6. A={1,2,3} 
  7. B=(1,) 
  8. print (A.symmetric_difference(B))#Output:{2,3} 
  9. #iterable is given as range object 
  10. A={1,2,3} 
  11. B=range(2) 
  12. print (A.symmetric_difference(B))#Output:{2,3} 

示例4:為^運(yùn)算符提供參數(shù)iterable:

 
 
 
 
  1. A={1,2,3} 
  2. B=[1] 
  3. A^Bprint (A) #Output: TypeError: unsupported operand type(s) for ^: 'set' and'list' 

‘symmetric_difference_update()’

更新集合,保留在兩個(gè)集合中均找到的元素并去除兩個(gè)集合中的公共元素??梢酝ㄟ^使用symmetric_difference_update()或使用^=運(yùn)算符來實(shí)現(xiàn),返回類型為None,將修改原始集本身。

語法:

 
 
 
 
  1. symmetric_difference_update(other) 
  2. set ^= other 

示例1:在A和B兩組之間找到symmetric_difference_update()

將通過僅保留能在任一集合中找到,但不在兩個(gè)集合中同時(shí)出現(xiàn)的元素來更新集合A。

 
 
 
 
  1. #symmetric_difference_update() 
  2. A={1,2,3,4,5} 
  3. B={4,5,6,7,8} 
  4. print (A.symmetric_difference_update(B)) #Output: None 
  5. print (A) #Output: {1, 2, 3, 6, 7, 8} 
  6. A={1,2,3,4,5} 
  7. B={4,5,6,7,8} 
  8. A^=B 
  9. print (A) #Output: {1, 2, 3, 6, 7, 8} 

‘isdisjoint()’

如果該集合沒有共同元素,則返回True。當(dāng)且僅當(dāng)它們的交集為空集時(shí),這時(shí)稱集合之間無連接。

語法:

 
 
 
 
  1. isdisjoint(other) 

5A14c6f7f809.png" target="_blank">5A14c6f7f809.png" alt="" title="" width="auto" height="auto" border="0">

示例

 
 
 
 
  1. #Set A and Set B containing common elements 
  2. A={1,2,3,4,5} 
  3. B={4,5,6,7,8} 
  4. print (A.isdisjoint(B))#Output:False 
  5. #Set A and Set B not containing common elements 
  6. A={1,2} 
  7. B={3,4} 
  8. print (A.isdisjoint(B))#Output:True 

‘issubset()’

測(cè)試集合中的每個(gè)元素是否都在other元素中。

語法:

 
 
 
 
  1. issubset(other) 
  2. set <= other 

示例:檢查集合A是否為集合B的子集

可以通過issubset()方法或使用≤運(yùn)算符來完成。

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={4,5,6,7,8} 
  3. print (A.issubset(B)) #Output: False 
  4. print (A<=B)#Output: False 
  5. A={1,2,3} 
  6. B={1,2,3,4,5} 
  7. print (A.issubset(B)) #Output: True 
  8. print (A<=B)#Output: False 

Proper subset

測(cè)試集合是否為other的真子集,即set <= otherand set != other。

句法:

 
 
 
 
  1. set < other 

示例:檢查集合A是否是B的真子集

如果兩個(gè)集合相等,則意味著 A.issubsetset(B) 返回True,但是真子集A

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={4,5,6,7,8} 
  3. print (A
  4. A={1,2,3,4,5} 
  5. B={1,2,3,4,5} 
  6. print (A
  7. A={1,2,3} 
  8. B={1,2,3,4,5} 
  9. print (A

‘issuperset()’

測(cè)試other中的每一個(gè)元素是否在集合中。

語法:

 
 
 
 
  1. issuperset(other) 
  2. set >= other 

示例:檢查集合A是否為B的超集

可以通過issuperset()方法或使用≥運(yùn)算符來實(shí)現(xiàn):

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={4,5,6,7,8} 
  3. print (A.issuperset(B)) #Output: False 
  4. print (A>=B)#Output:True 
  5. A={1,2,3,4,5} 
  6. B={1,2,3} 
  7. print (A.issuperset(B)) #Output: True 
  8. print (A>=B)#Output:True 

Proper superset

測(cè)試集合是否是other集合的真超集,即,set >= otherand set != other。

語法:

 
 
 
 
  1. set > other 

示例:檢查集合A是否為B的真超集。

如果兩個(gè)集合相等,則意味著A.issuperset(B)返回True,但是真超集A> B將返回False。

 
 
 
 
  1. A={1,2,3,4,5} 
  2. B={4,5} 
  3. print (A>B)#Output: True 
  4. A={1,2,3,4,5} 
  5. B={1,2,3,4,5} 
  6. print (A>B)#Output: False 
  7. A={1,2,3} 
  8. B={1,2,3,4,5} 
  9. print (A>B)#Output: True 

總結(jié)

Frozenset不支持所有更新方法,frozenset類型不可變且不可哈希創(chuàng)建,一旦創(chuàng)建內(nèi)容無法更改。由于所有更新方法都修改了原始集,所以frozenset不支持它。

我們可以通過兩種方式執(zhí)行數(shù)學(xué)集合設(shè)置操作:使用運(yùn)算符或使用一種方法。其不同之處在于,如果使用方法,將接受iterable作為參數(shù)。但是對(duì)于運(yùn)算符,僅應(yīng)設(shè)置參數(shù)。如果不是,則會(huì)引發(fā) TypeError。所有更新方法都會(huì)更新原始集,frozenset不支持該更新。除了更新方法外,所有其他方法都返回一個(gè)新集合。


網(wǎng)站名稱:無序的集合:Python中的數(shù)學(xué)集合運(yùn)算
本文路徑:http://m.5511xx.com/article/dpjpiig.html