立即学习:https://edu.csdn.net/course/play/26676/338782?utm_source=blogtoedu
定义:set不是序列,使用{}括起来的一些元素,元素必须是可hash对象(即不可变),同样不限定是同一类型;
类型:分为可变集合与不可变集合
性质:互斥性(元素不可重复)、无序性、确定性
集合的关系与运算:
集合之间的关系:1.元素与集合的关系:ele in s;len(s);2.集合与集合的关系:超集:a.issuperset(b),是否包含;子集:b.issubset(a),是否从属
集合之间的运算:1.并集:a | b;a.union(b);2.交集:a & b;a.intersection(b);3.差集:a - b;a.difference(b)
可变集合定义:s1 = {'a', 1, 2};s2 = set([1, 2, 'python']);s3 = set('str'),每个字符作为一个元素
可变集合函数:s.add('123');s.pop(),无入参,随机删除;s.remove(ele),删除指定元素,如果删除不存在的元素会报错;s.discard(ele),与remove相似,差别是如果元素不存在,不报错;
不可变集合定义:s1 = frozenset([1,2,'bnm']);s2 = frozenset('123')
三种容器类内置对象(list、dict、set)的共有方法:s1.copy(),这是一个浅拷贝(shallow),虽然容器不同,但是元素是同一个,但是修改一个容器的元素,如果是一般的简单元素,另一个容器的不会变化,如果修改的元素的容器元素或对象,另一个也跟着变;深拷贝,容器与元素都是新的。这个方法不是容器对象持有的,要引入,import copy copy.deepcopy(b1)
涉及的python内置方法:a1 is a2,判断两者是否相同,和使用id(a1)分别获取值再判断一样