集合是可变的容器
集合内的数据对象都是唯一的(不能重复)
集合是无序的存储结构
集合内的元素必须是不可变对象
集合是可迭代对象
集合是相当于只有键没有值的字典

创建集合

创建空集合:

    set()

创建非空集合的字面值:

    s = {1, 2, 3}

集合的构造函数:

    set()               创建空集合
    set(iterable)       用可迭代对象创建一个新的集合

    示例:

        s = set()
        s = {2, 3, 5, 7}
        s = set(\"ABC\")                      #s = {\'A\', \'B\', \'C\'}
        s = set(\"ABCCBA\")                   #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)}

集合的运算:

    交集  &  并集  |  补集  -  对称补集  ^  子集  <  超集  >

    & 用于生成两个集合的交集:

        s1 = {1, 2, 3}
        s2 = {2, 3, 4}
        s1 & s2         #{2, 3}

    | 用于生成两个集合的并集:

        s1 | s2         #{1, 2, 3, 4}

    - 用于生成两个集合的补集:

        s1 - s2         #{1}    属于s1但不属于s2
        s2 - s1         #{4}    属于s2但不属于s1

    ^ 用与生成两个集合的对称补集:

        s1 ^ s2         #{1, 4}

    > 判断一个集合是另一个集合的超集:

        s1 = {1}
        s2 = {1, 2}
        s2 > s1     #True

    < 判断一个集合是另一个集合的子集:

        s1 < s2     #True

    ==/!= 判断两个集合是否相同:

        s1 == s2    #False
        s1 != s2    #True

    in/not in 运算:

        同列表和字典规则相同

##  用于集合的函数:

    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]
        s = {x ** 2 for x in numbers if x % 2 == 1}
        print(s)

固定集合frozenset:

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

作用:

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

固定集合的构造函数:

    frozenset()             创建一个空的固定集合
    frozenset(iterable)     用可迭代对象创建一个新的固定集合

    示例:

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

固定集合的运算:

    交集  &  并集  |  补集  -  对称补集  ^

    in/not in 

    <  <=  >  >=  ==  !=

固定集合的方法:

    相当于集合的全部方法去掉修改集合的方法
收藏 打印