确定的无序的一组数据就是集合。
集合中的值不会重复(唯一)
集合中的元素没有任何顺序
集合中可以使用整数,浮点数,布尔值,复数,字符串,元组,冰冻集合
创建空集合
变量 = set()
变量 = {值,值....}
注意:集合是唯一性数据,所有相同的数据只会保留一份。
《《《序列操作仅可以进行成员检测
值 in 集合
检测某个值是否存在于集合当中
值 not in 集合
检测一个值是否不再集合当中
《《《集合的序列函数
1.len()
计算集合的长度
2.max()
获取集合中的最大值
3.min()
获取集合中的最小值
4.set()
创建空集合或者将其他数据转换为集合
《《《集合的遍历
普通序列的遍历
for 变量 in 集合:
使用变量
多级集合
集合 = {(值,值..),(值,值..)。。。}
for 变量1,变量2 in 集合:
使用变量1和变量2
《《《集合内涵/推导式
普通的集合推导式
变量={i for i in 集合}
带有判断条件的推导式
变量={i for i in 集合 if}
多循环推导式
变量 = {i+j for i in 集合1 for j in 集合2}
带有判断条件的多循环推导式
变量 = {i+j for i in 集合1 for j in 集合2 if 条件表达式}
《《《集合专用函数
1.add()
向集合中添加一个元素
格式:集合.add(值)
返回值:None
注意:直接改变原有集合
2.pop()
随机删除集合中的一个元素
格式:集合.pop()
返回值:删除的那个元素
注意:直接改变原有集合
3.remove()
删除集合中的某个元素
格式:集合.remove(值)
返回值:None
注意:直接改变原有集合
4.discard()
删除集合中的某个元素
格式:集合.dicard(值)
返回值:None
注意:直接改变原有集合
remove移除非成员值会报错,discard移除非成员值,啥也不错!
5.clear()
清空集合
格式:集合.clear()
返回值:None
注意:直接改变原有集合
6.copy()
复制集合
格式:集合.copy()
返回值:复制的一份集合
7.difference()
差集
格式:集合1.difference(集合2)
返回值:集合
操作:获取存在于集合1但是不存在与集合2中的数据的集合
8.difference_update()
差集 更新
格式:集合1.difference(集合2)
返回值:无 直接将结果赋值给集合1
操作:获取存在于集合1但是不存在与集合2中的数据的集合
9.intersection()
交集
格式:集合1.intersection(集合2)
返回值:集合
操作:获取即存在于集合1又存在于集合2中的数据组成的集合
10.intersection_update()
交集更新
格式:集合1.intersection_update(集合2)
返回值:None 直接将结果赋值给集合1
操作:获取即存在于集合1又存在于集合2中的数据组成的集合
11.union()
并集
格式:集合1.union(集合2)
返回值:集合
操作:将集合1和集合2中所有数据新建一个集合(去重)
12.update()
并集更新
格式:集合1.update(集合2)
返回值:无 直接将结果赋值给集合1
操作:将集合1和集合2中所有数据新建一个集合(去重)
13.issuperset()
检测一个集合是不是另外一个集合的超集
格式:集合1.issuperset(集合2)
返回值:布尔值
14.issubset()
检测一个集合是不是另外一个集合的子集
格式:集合1.issubset(集合2)
返回值:布尔值
15.isdisjoint()
检测2个集合是否不相交
格式:集合1.isdisjoint(集合)
返回值:布尔值
16.symmetric_difference()
对称差集操作
格式:集合1.symmetric_difference(集合2)
返回值:集合
操作:将集合1和集合2不相交的部分取出组成的新的集合
17.symmetric_difference_update()
对称差集更新操作
格式:集合1.symmetric_difference(集合2)
返回值:None 直接将结果赋值给集合1
操作:将集合1和集合2不相交的部分取出组成的新的集合
冰冻集合就是一旦创建,不可以在进行任何修改的集合。
创建空的冰冻集合
变量 = frozenset()
创建多个元素的集合
变量 = frozenset(容器类数据)
冰冻集合的遍历 for 变量 in 冰冻集合: 使用变量