集合(set)
集合中元素的特点:不重复,无序的,可哈希的(哈希就是为了计数)
集合就是没有值得字典,集合中不包括列表,因为列表不可哈希
集合本身是可变数据类型,所以不可哈希
frozenset():frozenset是冻结的集合,它是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法。
一、集合的增删改查
1、增加
add:
updata:迭代更新
2、删除
pop():随机删除
remove():直接删除
clear():清空
3、更改
set集合没有索引,没有办法定位一个元素,所以没有办法直接修改
所以最简单的方法就是先删除后添加
4、查询
集合是可迭代对象,所以可以用for循环
二、集合的常用操作
1、集合子集测试-issubset
s.issubset(b) :s中所有的元素都是b的成员 反回True 或 False
2、集合超集测试-issuperset
s.issuperset(b) :b中所有的元素都是s的成员 反回True 或 False
3、集合合并操作-union
s.union(b):合并s和b中的元素
4、集合交集操作-intersection
s.intersection(b):s和b中的交集元素
5、集合中差分操作-difference
s.difference(b) :在s中存在 在b中不存在的元素
6、集合对称差分操作-symmetric_difference
s.symmetric_difference(b)) :合并s和b中的元素 但是不是s和b共有的元素
7、集合浅复制-copy
s.copy():反回s的拷贝(浅复制)
8、集合添加集合元素-update
s.update(b):将b中的元素添加到s中
9、集合交集修改操作-intersection_update
s.intersection_update(b):s中仅包括s和b中共有元素
10、集合差修改操作-difference_update
s.difference_update(b):s中包括仅属于s但不属于b的成员
11、集合对称差分修改操作-symmetric_difference_update
s.symmetric_difference_update(b):s中包括仅属于s和仅属于b的成员
12、集合丢弃操作-discard
s.discard(b) :将指定的值从s中删除 如果s中存在 也没事