集合
前言:开学的时候一些同学会加入很多社团,但是在社联统计时一个同学参加多个社团,就会出现重复的情况,这时如果用列表统计就会很麻烦,但如果用集合统计就会方便很多,它会将重复的内容去掉。
集合的定义
1.在创建时定义集合
注意:如果花括号里面没有内容,就会是字典类型。
2.工厂方法定义集合定义一个空集合的方式:
注意:工厂方法定义集合时,括号里面必须是可迭代类型(数值类型就不可以)
列表去重的两种方式
1.集合方式
2.fromkeys方式
集合的特性
1.集合是无序的,不重复的数据类型
2.不支持索引,切片,重复,连接
3.支持成员操作符
4.支持for循环,即集合是可迭代类型
集合的增删查
增加
1)add形式
2 )update形式
查看-(关系测试操作)
1)交集(两种方式)
2)并集(两种方式)
3)差集(两种方式)
4)对等差分(两种方式)#将每个集合中不属于并集的元素取出来组成一个集合
s2.issubset(s1)#s2是s1的子集吗
s2.issuperset(s1)#s2是s1的父集吗
s2.isdisjoint(s1)#s2和s1没有交集吗
删除
1)pop任意删掉一个元素
2)remove删除集合指定元素,如果不存在,则报错
3)discard删除集合指定元素,如果不存在,不做任何事
4)clear清空集合元素
应用题:
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性, 他先用计算机生成了N个1到1000
之间的随机整数(N≤1000), N是用户输入的,对于 其中重复的数字,只保留一个,把其余相同的数去
掉,不同的数对应 着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺 序去找同学做调
查。请你协助明明完成“去重”与“排序”的工作;
代码实现:
总结
可变数据类型: 列表, 字典, 集合
不可变数据类型: 数值类型, 字符串, 元组
- 可变数据类型实现某个功能, 直接改变可变的数据类型;
- 不可变数据类型实现某个功能,需要将结果赋值给另外一个变量;
是否实现for循环
可迭代数据类型: str, list, tuple, dict, set
不可迭代数据类型:数值类型
是否支持索引,切片, 重复和连接特性
有序的数据类型: str, list, tuple
无序的数据类型: dict, set