日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python基础---容器集合Set

發(fā)布時間:2024/4/14 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基础---容器集合Set 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

集合Set(無序集合)

定義:一組包含具有唯一性元素,且無序的數(shù)據(jù)。

  ? ?其中的元素可以是int,float,bool,string,tuple,冰凍集合。復(fù)數(shù)等

   集合中的元素,無法進行修改

創(chuàng)建:

  1、創(chuàng)建一個空集合:? set()

  2、帶元素的集合:{obj1, obj2, obj3,...}

?

集合判斷:

  

    在上述圖片中,b 是 set1 和 set2 的 交集

           a + b + c 是 set1 和 set2 的 并集

          ? ?a 是 set1 相對于 set2 的 差集

    

    在上述圖片中,set1 是 set2 的 超集

           set2 是 set1 的 子集

           set1 去除 set2 的區(qū)域 為 補集

?

標(biāo)準(zhǔn)操作:

  1、因為無法定位元素,所以增刪改查都無法進行,只能使用函數(shù)進行增刪操作

  2、成員檢測? in? &? not in

  3、遍歷: for i in set()

    集合推導(dǎo)式。。。

  4、運算符求交集,差集,并集,標(biāo)準(zhǔn)差集

    交集:  x = set1 & set2

    并集:  x = set1 | set2

    差集:  x = set1 - set2  項在set1中,但不在set2中  

    標(biāo)準(zhǔn)差集:x = set1 ^ set2 ? 項在set1和set2中,但是不會同時出現(xiàn)在兩者

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {4, 5, 6, 7, 8, 9} 3 print(set1 & set2) 4 --->{4, 5, 6} 5 print(set1 | set2) 6 --->{1, 2, 3, 4, 5, 6, 7, 8, 9} 7 print(set1 - set2) 8 --->{1, 2, 3} 9 print(set1 ^ set2) 10 --->{1, 2, 3, 7, 8, 9}

?

基本函數(shù):

  1、len()

  2、max()? &? min()

  3、set()

  4、add()  

     set.add(obj)??向set中添加元素,一次只能添加一個

  5、刪除元素:

    set.pop()  隨機刪除一個元素

    set.remove(obj)  刪除指定元素

    set.discard(obj)   刪除指定元素

    兩者區(qū)別在于,在刪除不存在的值時,remove會報錯,discard會忽略

  6、clear()

  7、copy()

?

判斷函數(shù):

  1、difference()

    獲取存在于set1,但是不存在與set2中的數(shù)據(jù)的集合 即 差集

    set1.difference(set2)

  等價于 set1 - set2

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2, 7, 8, 9} 3 set3 = set1.difference(set2) 4 print(set3) 5 --->{3, 4, 5, 6}

  2、difference_update()

    更新set1,使其中的元素編程兩個集合的差集

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2, 7, 8, 9} 3 set1.difference_update(set2) 4 print(set1) 5 --->{3, 4, 5, 6}

  3、union()

    返回一個包含 set1 和 set2 所有元素,并且去重后的集合(即:并集)

    set1.union(set2)

   等價于 set1 | set2

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2, 7, 8, 9} 3 set3 = set1.union(set2) 4 print(set3) 5 --->{1, 2, 3, 4, 5, 6, 7, 8, 9}

  4、update()

    更新set1,使其中的元素變?yōu)?兩個集合的并集

    set1.update(set2)

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2, 7, 8, 9} 3 set1.update(set2) 4 print(set1) 5 --->{1, 2, 3, 4, 5, 6, 7, 8, 9}

  5、intersection()  

    計算兩個set的交集? ??

    set1.intersection(set2) 等價于? set1 & set2

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {4, 5, 6, 7, 8, 9} 3 new_set = set1.intersection(set2) 4 print(new_set) 5 --->{4, 5, 6}

  6、intersection_update()  

    更新set1,使其中的元素變?yōu)閮蓚€set 的交集

    set1.intersection_update(set2)

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {4, 5, 6, 7, 8, 9} 3 set1.intersection_update(set2) 4 print(set1) 5 --->{4, 5, 6}

  7、issupperset()

    檢測一個set是否是另一個set的超集,返回bool

    set1.issupperset(set2)

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2} 3 print(set1.issuperset(set2)) 4 --->True 5 6 set2 = {1, 2, 3, 4, 5, 6} 7 print(set1.issuperset(set2)) 8 --->True 9 10 set3 = {1, 7} 11 print(set1.issuperset(set3)) 12 --->False 13 14 set4 = {1, 2, 3, 4, 5, 6, 7} 15 print(set1.issuperset(set4)) 16 --->False

  8、issubset()

    檢測一個set是否是另一個set的子集,返回bool

    set1.issupperset(set2)

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2} 3 print(set2.issubset(set1)) 4 --->True

  9、isdisjoint()

    檢測兩個set是否不相交,返回bool,相交False,不相交True

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2, 7, 8, 9} 3 print(set1.isdisjoint(set2)) 4 --->False

  10、symmetric_difference()

    返回兩個集合的對稱差集(即 并集 - 交集)

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2, 7, 8, 9} 3 print(set1.symmetric_difference(set2)) 4 --->{3, 4, 5, 6, 7, 8, 9}

  11、symmetric_difference_update()

    set1.symmetric_difference_update(set2)

    更新set1,使其中元素變?yōu)閮蓚€set 的對稱差集

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = {1, 2, 7, 8, 9} 3 set1.symmetric_difference_update(set2) 4 print(set1) 5 --->{3, 4, 5, 6, 7, 8, 9}

?

冰凍集合Frozenset:

定義:一種特殊的集合類型,也是集合,就像Tuple之于List一樣,Frozenset之于Set

   較之于Set,其中元素?zé)o法進行修改

創(chuàng)建:

  1、空冰凍集合:frozenset()? ?

    但一般不推薦創(chuàng)建空的,因為無法更改   

   2、帶數(shù)據(jù):frozenset(seq)

    seq可以是 list,tuple,set等容器類數(shù)據(jù)

1 set1 = {1, 2, 3, 4, 5, 6} 2 set2 = frozenset(set1) 3 print(set2, type(set2)) 4 --->frozenset({1, 2, 3, 4, 5, 6}) <class 'frozenset'>

?

基本操作:

  1、成員檢測? in & not in

  2、遍歷: for i in frozenset()

   ? 集合推導(dǎo)式得到的結(jié)果,不是一個冰凍集合,取決于使用哪種括號

相關(guān)函數(shù):

  冰凍集合Frozenset可以使用集合Set的相關(guān)函數(shù),但是局限于是否修改集合本身

  冰凍集合無法修改元素

轉(zhuǎn)載于:https://www.cnblogs.com/lambs/p/8472914.html

總結(jié)

以上是生活随笔為你收集整理的Python基础---容器集合Set的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。