变量类型-Set

发布时间:2019-03-13 22:47:03编辑:auto阅读(1852)

    教程:
        集合是一个无序不重复元素的序列,它的特点是:有的可变,有的不可变,元素无序不可重复!

    一:集合的创建

        (1)使用花括号

            set={value1, values2}
            
            注意创建一个空集合的时候不能用{},此时创建的是一个字典

        (2)使用内联函数set()------>可以原地修改的集合

            s = set()
        
        注意:    集合是无序的(集合不是序列类型,则集合也不支持索引和切片),
            打印结果取决于内部存储结构和输出方式

        (3)使用内联函数frozenset()---->hashable 可哈希卡类型
    二:集合的索引(不允许)

         File "<ipython-input-5-9b6a789630ee>", line 1, in <module>
            set_1[1]
        TypeError: 'set' object does not support indexing

    三:集合的运算

        (1)元素与集合之间的关系

            'i' in set('ilove')

        (2)集合a与集合b之间的关系
            
            a == b            判断是否相等
            a < b 或者 a.issubset(b) 判断是否为子集
            a 并 b  ---> a|b 或者 a.union(b)
            a 交 b  ---> a&b 或者 a.intersection(b)
            a 补 b  ---> a-b 或者 a.difference(b)
            a 和 b 的对称差集    a^b 或者 a.symmetric_difference(b)

            
    三:集合元素的添加

        (1)方法一:    s.add(x)
        (2)方法二:      s.update(x)    其中x可以是列表,元组,字典

    四:集合元素的删除
        
        (1)方法一:    s.remove(x)    元素不存在发生错误
        (2)方法二:      s.discard(x)    元素不存在不会发生错误
        (3)方法三:      s.pop()        随机删除一个元素
        (4)方法四:      s.clear()    清空集合

    五:集合内置函数

        len(set)----set元素的总数
        set.add()-----添加
        set.update()--更新
        还包括上面的四个函数
        
    CODE:
    # -----------------------------------------------------------------------------------------------------#
    # 集合的创建
    # -----------------------------------------------------------------------------------------------------#
    set_1 = set('abracadabra')  # 创建可变的集合
    print("set_1:", set_1)

    set_1.add('python')         # 元素的添加
    print("添加Python后set_1:", set_1)

    set_2 = set('alacazam')
    print("set_2:", set_2)

    set_3 = frozenset('faith')  # 创建不可变的集合验证元素不可添加
    print("创建不可变集合set_3:", set_3)


    # -----------------------------------------------------------------------------------------------------#
    # 集合的运算
    # -----------------------------------------------------------------------------------------------------#
    print("set_1 - set_2: ", set_1 - set_2)

    print("set_1 | set_2: ", set_1 | set_2)

    print("set_1 & set_2: ", set_1 & set_2)

    print("set_1 ^ set_2: ", set_1 ^ set_2)


    # -----------------------------------------------------------------------------------------------------#
    # 集合元素的添加(对于可变集合)
    # -----------------------------------------------------------------------------------------------------#

    # 方法一

    set_2 = set('alacazam')
    set_2.add("faith")
    print("添加元素方法一:", set_2)

    # 方法二
    x = {1, 2, 3, 'aaa'}        # 列表
    y = (1, 2, 3, 'aaa')        # 元组
    z = {1: 'wang', 2: 'aaa'}   # 字典--->只添加键值

    set_2.update(z)
    print("添加元素方法二:", set_2)

    # -----------------------------------------------------------------------------------------------------#
    # 集合元素的删除
    # -----------------------------------------------------------------------------------------------------#

    # 方法一
    set_2.remove('faith')
    print("删除元素方法一:", set_2)

    # 方法二
    set_2.discard('1')
    print("删除元素方法二:", set_2)

    # 方法三
    set_2.pop()

    print("删除元素方法三:", set_2)
    # 方法三
    set_2.clear()
    print("删除元素方法四:", set_2)







关键字