1. 集合基础知识点
- 集合是无序的,不可重复的,可变的
- 集合的元素是要可以hash的,
- 集合的元素不可以索引,因为无序,
- 集合的元素是可以遍历的,所以可以迭代
如何判断元素是否可以hash,hash(元素)
常见的不可hash的类型有set,list
2. set基本操作
a. 创建
set(),空集合
set(iterable),可迭代对象
s = {1,2,3,’a’}
b. 增删查改
增删查改
增:
add(),添加一个元素 ==> 就地修改
update(*others) ,添加一个可迭代对象 ==> 就地修改
删:
remove(),移除一个不存在的元素会报错 ==> 就地修改
discard(),移除一个不存在的元素不会报错 ==> 就地修改
pop() ,随机弹出一个元素,==>弹出的元素
clear(),移除所有的元素,会引起垃圾回收
查:无法索引,但是可以for遍历
改:不支持修改,若要修改,先删后加
成员运算:in、not in
集合运算的销量是O(1)的
3. 集合运算:
并集:两个集合的元素放在一起
a.union(b) 或者 a | b ==> 返回一个新的集合
a.update(b) 或者 a |= b ==> 修改a集合
交集:找个两个集合工有的元素
a.intersection(b) 或者 a&b ==> 返回一个新的集合
a.intersection_update(b) ==> 修改a的集合
差集:a 差 b,属于a且不属于b的元素的集合
a.difference(b) 或者 a-b ==> 返回一个新的集合
a.difference_update(b) 或者 a -= b ==> 修改a的集合
对称差集:并集排除交集的部分
a.symmetric_differece(b) 或者 a^b ==> 返回一个新的集合
a.symmetric_differece_update(b) 或者 a^=b ==> 修改a的集合
集合判断:
a > b :b的元素在a里全部都可以找到,a不等于b
a >= b :b的元素在a里全部都可以找到,a可以等于b
a < b
a<= b