python 数据成员 声明为数组 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()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        向集合内增加元素,如果添加的元素已经存在的话,则不执行任何操作
      语法:
        集合对象.add(elem)
          参数:elem 表示要增加的元素
          返回值:无

View Code

    2.clear()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        清空集合内所有的元素
      语法:
        集合对象.clear()
          参数:无
          返回值:无

View Code

    3.copy()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:    
        复制一个集合
      语法:
        集合对象.copy()
          参数: 无
          返回值:返回已复制的集合对象

View Code

    4.difference()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        返回两个集合的补集
      语法:
        集合对象1.difference(集合对象2)
          参数 :集合对象2 ,表示计算补集的另外一个集合
          返回值 :补集结果,即出现在集合1中但没出现在集合2中的元素集合 
      等同于: 集合对象1 - 集合对象2

View Code

    5.difference_update()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        移除两个集合中都存在的元素
      语法:
        集合对象1.difference_update(集合对象2)
          参数 集合对象2 :计算补集的集合
          返回值:无
            注意:直接从集合对象1中删除交集

View Code

    6.remove()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        移除指定的元素
      语法:
        集合对象.remove(移除元素)
          参数 移除元素:要移除的内容
          返回值 :无
      注意:如果要移除的元素不存在,则发生错误

View Code

    7.discard()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        移除指定的元素
      语法:
        同上
      注意:如果要删除不存在的元素,不会发生错误

View Code

    8.pop()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        用于随机删除一个元素
      语法:
        集合对象.pop()

View Code

    9.intersection()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        返回两个或多个集合中的交集元素
      语法:
        set1.intersection(set2,set3,set4)
        参数:
          做交集的集合对象,可以是多个
        返回:
          返回交集的集合结果

View Code

    10.intersection_update

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        获取多个集合的交集,但会将结果直接影响回调用该方法的集合对象
      语法:
        s1.intersection_update(s2)
          参数:做交集的集合
          返回值:无,但会影响s1的结果

View Code

    11.isdisjoint()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        判断两个集合中是否包含相同的元素,如果没有返回True,否则返回False
      语法:
        s1.isdisjoint(s2)

View Code

    12.issubset()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        判断一个集合的元素是否都包含在指定集合中(判断子集),如果是返回True,否则返回False
      语法:
        s1.issubset(s2)

View Code

    13.issuperset()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        判断超集
      语法:
        s1.issuperset(s2)
        返回值:
          如果s1 包含 s2 ,则返回True
          如果s1 不包含 s2 ,则返回False(如果s2中有的元素没在s1中)

View Code

    14.symmetric_difference()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        对称补集,即返回两个集合中不重复的元素集合
      语法:
        s1.symmetric_difference(s2)
          参数:计算对称补集的集合
          返回值:返回一个不重复的元素的集合
        等同于 s1 ^ s2

View Code

    15.symmetric_difference_update()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        对称补集,将结果直接影响回原始集合
      语法:
        s1.symmetric_difference_update(s2)

View Code

    16.union()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        返回两个集合的并集即返回两个集合中所有的元素,重复元素只出现一次
      语法:
        s1.union(s2)
          返回值:并集结果
          等同于:s1 | s2

View Code

    17.update()

python 数据成员 声明为数组 python声明集合_迭代_02

python 数据成员 声明为数组 python声明集合_并集_03

作用:
        修改当前集合,也可以添加新元素到集合中
      语法:
        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.固定集合的方法
      相当于集合的全部方法去掉能够修改集合的方法