python集合的用法



  1.什么是集合
    1.集合是一個可變容器
    2.集合內的數據對象都是唯一的(不能重復)
    3.集合是無序的存儲結構,集合內的數據沒有先后關系
    4.集合是可迭代對象
    5.集合相當於是只有鍵沒有值得字典(鍵就是集合中的數據)
    6.集合內的元素是不可變的
  2.創建集合
    1.使用直接量創建集合
      注意:使用直接量不能創建空集合
      s = {1,2,3}
      s = {"hello",3.14,True,(2019,02,17)}
    2.使用構造函數創建集合 - set
      s = set() #創建空集合
      s = set(iterable) #使用可迭代對象創建一個集合
        s = set("ABC") # s = {'A','B','C'}
        s = set([1,0,3.14,"hello"]) # s = {1,0,3.14,'hello'}
        ... ...
  3.集合的運算
    交集,並集,補集,子集,超集

    1.交集 - &
      s1 = {1,2,3}
      s2 = {2,3,4}
      s3 = s1 & s2 # s3 = {2,3}
    2.並集 - |
      s1 = {1,2,3}
      s2 = {2,3,4}
      s3 = s1 | s2 #s3 = {1,2,3,4}
    3.補集 - -
      s1 = {1,2,3}
      s2 = {2,3,4}
      s3 = s1 - s2 #生成屬於s1 但 不屬於s2的所有的元素
      #s3 = {1}
    4.對稱補集 - ^
      s1 = {1,2,3}
      s2 = {2,3,4}
      s3 = s1 ^ s2 # (s1 - s2) | (s2 - s1)
    5.超集 - >
    6.子集 - <
      s1 = {1,2,3}
      s2 = {2,3}

      s1 > s2 # True s1 是 s2 的超集
      s1 < s2 # False s1 不是 s2 的子集
    7.集合的相等 - ==
    8.集合的不等 - !=
      s1 = {1,2,3}
      s2 = {3,2,1}

      s1 == s2 #True,集合相等
    9.成員運算 - in , not in
      等同於字典 in , not in
      目的:判斷某個值在集合中存在 / 不存在
  4.用於集合的內建函數
    len(set) : 集合內元素的個數
    max(set) : 最大值
    min(set) : 最小值
    sum(set) : 和
    any(set) : 任何一個元素為真,則返回真
    all(set) : 所有元素為真,則返回真
  5.用於集合的方法
    1.add()

      作用:
        向集合內增加元素,如果添加的元素已經存在的話,則不執行任何操作
      語法:
        集合對象.add(elem)
          參數:elem 表示要增加的元素
          返回值:無
View Code

    2.clear()

      作用:
        清空集合內所有的元素
      語法:
        集合對象.clear()
          參數:無
          返回值:無
View Code

    3.copy()

      作用:    
        復制一個集合
      語法:
        集合對象.copy()
          參數: 無
          返回值:返回已復制的集合對象
View Code

    4.difference()

      作用:
        返回兩個集合的補集
      語法:
        集合對象1.difference(集合對象2)
          參數 :集合對象2 ,表示計算補集的另外一個集合
          返回值 :補集結果,即出現在集合1中但沒出現在集合2中的元素集合 
      等同於: 集合對象1 - 集合對象2
View Code

    5.difference_update()

      作用:
        移除兩個集合中都存在的元素
      語法:
        集合對象1.difference_update(集合對象2)
          參數 集合對象2 :計算補集的集合
          返回值:無
            注意:直接從集合對象1中刪除交集
View Code

    6.remove()

      作用:
        移除指定的元素
      語法:
        集合對象.remove(移除元素)
          參數 移除元素:要移除的內容
          返回值 :無
      注意:如果要移除的元素不存在,則發生錯誤
View Code

    7.discard()

      作用:
        移除指定的元素
      語法:
        同上
      注意:如果要刪除不存在的元素,不會發生錯誤
View Code

    8.pop()

      作用:
        用於隨機刪除一個元素
      語法:
        集合對象.pop()
View Code

    9.intersection()

      作用:
        返回兩個或多個集合中的交集元素
      語法:
        set1.intersection(set2,set3,set4)
        參數:
          做交集的集合對象,可以是多個
        返回:
          返回交集的集合結果
View Code

    10.intersection_update

      作用:
        獲取多個集合的交集,但會將結果直接影響回調用該方法的集合對象
      語法:
        s1.intersection_update(s2)
          參數:做交集的集合
          返回值:無,但會影響s1的結果
View Code

    11.isdisjoint()

      作用:
        判斷兩個集合中是否包含相同的元素,如果沒有返回True,否則返回False
      語法:
        s1.isdisjoint(s2)
View Code

    12.issubset()

      作用:
        判斷一個集合的元素是否都包含在指定集合中(判斷子集),如果是返回True,否則返回False
      語法:
        s1.issubset(s2)
View Code

    13.issuperset()

      作用:
        判斷超集
      語法:
        s1.issuperset(s2)
        返回值:
          如果s1 包含 s2 ,則返回True
          如果s1 不包含 s2 ,則返回False(如果s2中有的元素沒在s1中)
View Code

    14.symmetric_difference()

      作用:
        對稱補集,即返回兩個集合中不重復的元素集合
      語法:
        s1.symmetric_difference(s2)
          參數:計算對稱補集的集合
          返回值:返回一個不重復的元素的集合
        等同於 s1 ^ s2
View Code

    15.symmetric_difference_update()

      作用:
        對稱補集,將結果直接影響回原始集合
      語法:
        s1.symmetric_difference_update(s2)
View Code

    16.union()

      作用:
        返回兩個集合的並集即返回兩個集合中所有的元素,重復元素只出現一次
      語法:
        s1.union(s2)
          返回值:並集結果
          等同於:s1 | s2
View Code

    17.update()

      作用:
        修改當前集合,也可以添加新元素到集合中
      語法:
        s1.update(s2)
          參數:用於更新s1集合的新集合
          返回值:會將更新的結果進行返回
View Code

  6.集合推導式
    集合推導式即允許使用可迭代對象生成集合的表達式
    語法:
      { 表達式 for 變量 in 可迭代對象 if 條件}
    L = [1,2,3,4,5,6,7,8,9]
    s = { x for x in L}
    s = { x for x in L if x % 2 == 0}

 

  7.固定集合 - frozenset
    1.特點
      1.不可變的容器 - 允許作為字典的鍵
      2.無序的
      3.元素唯一
    2.創建固定集合 - 使用構造函數(frozenset)
      1.frozenset() : 創建一個空的固定集合
      2.frozenset(iterable) : 使用可迭代對象創建固定集合

 

      示例:
        f = frozenset() # 空固定集合
        f = frozenset([1,2,3,4]) # f = frozenset({1,2,3,4})
    3.固定集合的運算
      交集(&),並集(|),補集(-),對稱補集(^)
      <,>,>=,<=,==,!=
      int / not in
    4.固定集合的方法
      相當於集合的全部方法去掉能夠修改集合的方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM