Python中的set(集合)

发布于:2022-11-29 ⋅ 阅读:(321) ⋅ 点赞:(0)

Python中的set是一种内置的基础数据结构,中文名叫集合。

一、set的定义和创建

集合可以理解为一组key的集合,但不存储value。

在set中没有重复的key

输出是一个大括号括起来的集合{}

注意:不可以放入可变对象。只能放入不可变对象。

(1)创建set

        需要一个list作为输入

                s = set([1,2,3])

        重复元素将被过滤

                s = set([1, 1, 2, 2, 3, 3])

                结果将为{1,2,3}

二、set的基本操作

(1)add(key)

        添加元素key到set中。

        重复添加无效。 s.add(4)

(2)remove(key)

         删除元素key

         s.remove(4)

(3)集合运算

        假设s1 = set([1, 2, 3]) s2 = set([2, 3, 4])

       1. 交集&

        s1 & s2  ---->  {2,3}

        2. 并集|

         s1 | s2   ----> {1,2,3,4}

        3.差集-

        s1 - s2   ----> {1}

        4.对称差集^

        s1 ^ s2  -----> {1,4}

        5. set.intersection()

        返回交集的结果 新的集合

        6.set.intersection_update()

        计算两个集合的相交部分,把计算结果重新赋值给第一个集合

        7.set.union()

        返回并集结果,新的集合

        8.set.update()

        求并集运算,并且把结果赋值给第一个集合

        9. set.difference()

        返回差集结果,新的集合

        10.set.difference_update

        求差集运算,并且把结果赋值给第一个集合

        11. set.symmetric_difference

        返回对称差集结果,新的集合

        12. set.symmetric_difference_update

        求对称差集运算,并且把结果赋值给第一个集合

        13.超集和子集的检测

        set.issuperset() 检测是否为超集

        set.issubset() 检测是否为子集

        14.是否相交检测

        isdisjoint 检测是否不相交,不相交返回True, 相交则返回False

三、冰冻集合

        一旦创建就不可以进行修改的集合。

        创建形式:

                空冰冻集合 变量 = frozenset()

        冰冻集合的作用:

                为集合的操作提供一个不可以改变的对照集合

        frozenset()方法

                一个强制转换类函数 例如:

                vars = frozenset()  # 空的冰冻集合

                vars = frozenset({1,2,3})    # 将集合转为冰冻集合

                vars = frozenset([1,2,3])    # 将列表转为冰冻集合

                print(vars)        #(输出) frozenset({1, 2, 3})

        冰冻集合的遍历

                例如:

vars = frozenset({1,2,3})
for i in vars:
    print(i)

好啦,学会了就点个赞呗。