python之集合(set)

  • 集合 set

    集合是可变的容器
    集合内的数据对象是唯一的(不能重复多次的)
    集合是无序的存储结构,集合内的数据没有先后关系
    集合内的元素必须是不可变的对象
    集合是可迭代对象
    集合相当于只有键没有值的字典(键是集合的数据)
    创建空的集合
        set()
    创建非空的集合的字面值
        s = {1,2,3}
    集合的构造函数:
        set()  创建一个空的集合(不能用{}来创建空集合)
        set(interable) 用可迭代对象创建一个新的集合
        示例:

  s = set()
  s = {2,3,5,7}
  s = set("ABC") #s = {'A','B','C'}
  s = set({1:'1',2:'2',5:'5',})   #s = {1,2,5}
  s = set(('ABC','123','True'))
  s = {True,None,'abc',(1,2,3)}

    python3中不可变数据类型:
        bool, int, float, complex, str, tuple, frozenset, bytes
    可变的数据类型:
        list,dict,set,bytearray

    集合的运算:
        交集& 并集| 补集-   对称补集 ^   子集<  超集 >

            &用于生成两个集合的交集
                s1 = {1,2,3} 
                s2 = {2,3,4}
                s1&s2   #{2,3}
            |用于生成两个集合的并集
                s1 = {1,2,3} 
                s2 = {2,3,4}
                s1|s2   #{1,2,3,4}
            -生成两个集合的补集
                s1 = {1,2,3} 
                s2 = {2,3,4}
                s1-s2   #{1}  生成属于s1不属于s2的元素
                s2-s1   #{4}  生成属于s1不属于s2的元素
            ^生成两个集合的对称补集
                s1 = {1,2,3} 
                s2 = {2,3,4}
                s1^s2   #{1,4}  属于s1不属于s2,属于s2又不属于s1,的元素的并集
            >判断一个集合是另一个集合的超集
            <判断一个集合是另一个集合的子集
          s1 = {1,2,3} 
                s2 = {2,3}
                s1 > s2   #True  
                s2 < s1   #True
            == != 集合相同/不同
                s1 = {1,2,3}
                s2 = {3,2,1}
                s1 == s2 #True
            in /not in运算
                同列表的字典的in运算符规则相同,如果存在于集合中返回True,否则返回False
                示例:
                    2 in {1,2,3}  #True
        用于函数的集合
            len(x)     返回集合的长度
            max(x)返回集合的最大值元素
            min(x)    返回集合的最小值元素
            sum(x)   返回集合中所有的元素的和
            any(x)    真值测试,规则与列表相同
            all(x)   真值测试,规则与列表相同
        集合时可迭代对象,可以用于for 语句中

    集合的方法:
        详见:
            >>>help(set)
        文档参见;
            set.html

        集合不支持索引,要将集合中的值取出只能用迭代的方法,不能修改
    集合推导式:
        用可迭代对象创建集合的表达式
        语法:
            {表达式 for 变量 in 可迭代对象[if 真值表达式]}

            []部分代表可以省略
        示例:

numbers = [1,3,5,7,9,3,4,5,6,7,8]
s = {x ** 2 for x in numbers if x % 2 == 1}
print(s)   #{81, 1, 49, 9, 25}

    固定集合 frozenset
        固定集合是不可变的,无序的,含有唯一元素的集合

        作用:
            固定集合可以作为字典的键,也可以作为集合的值

    固定集合的构造函数 frozenset
        frozenset()                 创建一个空的固定集合
        frozenset(interable)  用可迭代对象创建一个新的固定集合

        示例:

fz = frozenset()
fz = frozenset("ABCABC")
fz = frozenset([1,2,3,4,5])


    固定集合的运算:
        &   交集
        |     并集
        -  补集
        ^ 对称补集
        in / not in 运算
        >  >=  <  <=  ==  !=
        (以上运算等同于集合的运算)
    固定集合的方法:
        相当于集合的全部方法去掉修改集合的方法

猜你喜欢

转载自blog.csdn.net/zhangshuaijun123/article/details/82288742