4.集合

天涯浪子 提交于 2020-03-25 18:41:11

3 月,跳不动了?>>>

集合

定义 集合(set)是一种无序不重复对象类型 集合类似字典,但是只有键,没有值 功能 消除重复元素 将列表中的重复元素消除 实现交、并、差等数学计算

语法 变量 = set(列表/字符串 ) s = set(list) >>> list = [1,2,3,1,2,4] >>> s1 = set(list) >>> s1 set([1, 2, 3, 4]) s = set(str) >>> str = 'hello,world;hi,world' >>> s2 = set(str) >>> s2 set(['e', 'd', 'i', 'h', 'l', 'o', ',', 'r', 'w', ';']) 特征

无序
        类似字典,没有序列/索引,不支持切片和索引访问
    不重复
        每个项在集合中都是唯一的
    可变&不可变
        可变集合
            set( )
                可增加删除元素
        不可变集合
            frozenset( )
                不可增删

如何操作集合:

操作符

交集
        &
            功能
                获取集合中相同的元素
            举例
                >>> l1 = [1,2,3,4,5]
                >>> l2 = [2,3,4,5,6]
                >>> s1 = set(l1)
                >>> s1
                set([1, 2, 3, 4, 5])
                >>> s2 = set(l2)
                >>> s2
                set([2, 3, 4, 5, 6])
                >>> s1 & s2
                set([2, 3, 4, 5])
并集
        |
            功能
                将集合中的元素合并
            举例
                >>> s1 | s2
                set([1, 2, 3, 4, 5, 6])
差集
        - 
            功能
                获取集合中的不同元素,不同元素在s1中
            举例
                >>> s1 - s2
                set([1])
        ^
            功能
                对称差分,获取集合中的不同元素,元素在不同集合中(并集减去交集)
            举例
                >>> s1 ^ s2
                set([1, 6])

内置函数:

交集
        s.intersection( )
            >>> s1.intersection(s2)
            set([2, 3, 4, 5])
    并集
        >>> s.union( )
            >>> s1.union(s2)
            set([1, 2, 3, 4, 5, 6])
    差集
        s.difference( )
            >>> s1.difference(s2)
            set([1])
        s.symmetric_difference( )
            >>> s1.symmetric_difference(s2)
            set([1, 6])
    增加
        s.add( )
            功能
                增加元素
            举例
                >>> s1
                set([1, 2, 3, 4, 5])
                >>> s1.add(10)
                >>> s1
                set([1, 2, 3, 4, 5, 10])
                >>> s1.add(1)
                    增加已经存在的元素,集合不改变
                >>> s1
                set([1, 2, 3, 4, 5, 10])
s.update( )
            功能
                增加集合中的元素(集合叠加)
            举例
                >>> s1.update(s2)
                >>> s1
                set([1, 2, 3, 4, 5, 6, 10])
删除
        s.remove( )
            功能
                删除特定元素;若没有该元素则报错
            举例
                >>> s1
                set([1, 2, 3, 4, 5, 6, 10])
                >>> s1.remove(1)
                >>> s1
                set([2, 3, 4, 5, 6, 10])
                >>> s1.remove(1)
                Traceback (most recent call last):
                  File "<input>", line 1, in <module>
                KeyError: 1
        s.discard( )
            功能
                删除特定元素;若没有该元素不报错
            举例
                >>> s1
                set([2, 3, 4, 5, 6, 10])
                >>> s1.discard(1)
                >>> s1
                set([2, 3, 4, 5, 6, 10])
                >>> s1.discard(2)
                >>> s1
                set([3, 4, 5, 6, 10])
        s.pop( )
            功能
                删除一个元素
            举例
                >>> s1
                set([1, 2, 3, 4, 5])
                >>> s1.pop()
                1
                >>> s1
                set([2, 3, 4, 5])
清除
        s.clear( )
            功能
                清除该集合
            举例
                >>> s1
                set([3, 4, 5])
                >>> s1.clear()
                >>> s1
                set([])
判断
        s.issubset
            功能
                判断s1是否s2的子集
            举例
                >>> s1
                set([1, 2, 3, 4, 5, 6, 7])
                >>> s2
                set([2, 3, 4, 5, 6])
                >>> s1.issubset(s2)
                False
        s.issuperset
            功能
                判断s1包含s2
            举例
                >>> s1.issuperset(s2)
                True
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!