立即学习:https://edu.csdn.net/course/play/26676/338782?utm_source=blogtoedu
集合
无序、互异、确定 三特点
定义(可变集合)
如 s = set([1, 2, 3, 3, 2, 1, 4]) -> {1, 2, 3, 4}
集合中元素不是键值对,必须是不可变对象,元素无顺序(无序性),
s2 = {'py', 2, 3}
s3 = {'py', [1, 2, 3]} 不能用列表这种可变对象
s.add('py') 在s集合中加入元素'py'
s.pop() 在s集合中删除第一个元素
s.remove(4) 在s集合中删除特定元素4,如果找不到特定元素会报错
s.discard(4) 在s集合中删除特定元素4,如果找不到特定元素不会报错
frozenset(‘qiwsir’) 把集合冻住 -> frozenset({'w','q', 'r', 's, 'i'}) 不可变集合
集合中依然没有重复元素
字典、列表、集合(他们都是容器类对象)都有的方法:拷贝
浅拷贝
如 b2 = b1.copy() 得到相应对象的浅(shallow)拷贝;拷贝后的对象和原本不是同一个对象;元素顺序依然对应,里面的东西还是同一个元素
如果修改原列表中的元素,拷贝的列表的对应元素不会改变;如果修改原列表中的列表中的元素,拷贝后的会改变
所以浅拷贝只拷贝第一层
深拷贝
如 b3 = copy.deepcopy(b1) ,得到完全独立于原本的对象
判断是否为同一个对象的另一种方法 obj1 is obj2 如果返回true,则是;如果返回false,则不是
元素/集合之间的关系
要么在集合中,要么就不在
元素 in 集合 返回 true(在)/false(不在)
集合/集合之间的关系
如 a.issuperset(b) (检验超集)
a.issubset(b) (检验子集)
集合运算
并集 a | b 或 a.union(b)
交集 a & b 或 a.intersection(b)
差集 a - b 或 a.difference(b)