• 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.固定集合的方法
          相当于集合的全部方法去掉能够修改集合的方法

  • 相关阅读:
    两种选择排序法
    三种方法求组合偶数字
    sizeof和mallo
    多态的概念与接口重用
    Delphi Exception的理解
    给老婆留着
    Delphi 一个简单的DELPHI自定义事件的例子
    Delphi 纯Pascal编写的程序,没有通过VCL
    Delphi 继承类的构造函数和析构函数的构建顺序
    Delphi 对象间数据的复制
  • 原文地址:https://www.cnblogs.com/zhaoyang1997/p/10392822.html
Copyright © 2020-2023  润新知