python集合的概念与使用
方法一:使用for循环嵌套
性能上说,使用了两层循环,复杂度比较高,且列表重复元素可能会导致结果重复,python的集合可以很好的解决这个问题
python的集合
是python内置的一个数据结构,是一个无序的集,用于保存不重复的元素,打印不会打印重复的元素,默认将重复元素归一化,集合的格式如下:
{‘Kira’,‘Bill’,‘Tom’,‘Niki’}
1.集合中相邻元素之间用逗号分隔,整体用花括号’{}'括起来
2.集合存储的书局不是key-value对,是基础数据类型,类型不可变,例如整型、浮点型、字符串、元组
3.可变数据类型:列表、字典、集合本身
集合的创建
集合的创建可以使用内置函数set()或者大括号,举个例子:
1.a=set(),用于创建空集合
2.b={1,2,‘abc’},大括号中为初始的集合元素,个人理解为Java的静态初始化
如果用大括号的方式创建空集合,如a={},会默认创建一个字典
其他类型向集合的转换
可将字符串、列表、元组、字典等数据类型转换为集合,将要转换的数据作为set()函数的参数即可,以下是例子:
从打印结果可以看出,其他类型的数据成功转换为集合类型,且可以看出python的集合是无序的
需要注意的是,将字典转换为集合,会将字典的key添加至集合,而将字典的value忽略
由于集合是无序的,因此不能使用索引的方式来访问,但可以通过遍历的方式来访问,下面是遍历集合的例子:
集合元素的添加
集合的方法:
add():向集合中添加指定元素
remove():删除集合中制定和元素
下面实际操作:
集合的运算
集合之间可以进行运算,运算的方式类似数学中的集合,可以求:
并集:使用【符号|/函数union()】(取两集合的全部元素)
交集:使用【符号&/函数intersection()】(取两个集合公共的元素)
差集:使用【符号-/函数diffrernce()】(取一个集合中另一个元素没有的元素)
用集合解决查班级重名问题
目标:找出两个班级中同名的学生名字
课后作业
修改程序,求出在班级2中出现,但没在班级1中出现的姓名
分析:求班级2对班级1的差集