1、集合(set)的简介及创建
1、集合的简介
- 集合是一个可变的数据类型,但其中存储的元素必须为不可变(可哈希)数据类型;
- 集合无序
- 元素不可重复(如其中有重复元素,则在创建时会删除重复的元素,只保留重复元素中的一个)
- 集合的表示通过
{}
来进行 - python中集合不能嵌套,也不能嵌套列表等类型,原因如第一条所讲,集合的元素类型只能是不可变数据类型,如整数,浮点数,字符串,元组。
2、集合的创建(实例)
用两种方法分别创建名为set1和set2的集合
从上面例子可以看出,集合创建的方式有两种,一种是用“{}”创建,基本语法为{element1,...,elementn}
,另一种是用“set()”方法创建,基本语法为set({element1,...,elementn})
,不过需要注意的是,空集合只能用set方法进行创建,不能直接用“{}”方法创建,因为直接用“{}”创建出来的是空字典;用set方法创建空集合的方法:set({})
2、集合相关的基本操作
1、往集合里面添加数据
- add()方法:往集合里面添加数据,位置为集合的末尾;基本语法为
集合名.add(element)
实例:
- update()方法:有点类似于列表的extend()方法,将元素拆分为最小元素加入原集合
实例:
2、删除集合中的数据或者集合本身
- pop()方法:随机删除集合中的一个值,然后将其返回;基本语法为
集合名.pop()
实例:
- remove()方法:删除集合中指定的元素,若该元素不存在,则报错;基本语法为
集合名.remove(element)
实例:
- clear()方法:清空集合中的数据,基本语法
集合名.clear()
实例:
- del语句:删除集合本身,基本语法为
del 集合名
实例:
3、搜索集合中的数据
由于集合的无序性,搜索集合的数据时只能使用for循环来实现,具体的方法以一个实例来说明。
实例: 输出集合的所有元素
3、集合的运算
与列表等类型最大的不同之处在于,集合可以进行各种独有的运算,如交集、并集、补集等等。
1、求交集:即两个集合中都有的元素,求交集有两种方法
- 方法一:用intersection()函数,基本语法为
集合名.intersection(集合名)
- 方法二:用“&”符,基本语法为
集合名 & 集合名
- 实例:
2、求并集:即将两个集合中所有的元素合为一个大的集合,这也有两种方法
- 方法一:用union()函数,基本语法为
集合名.union(集合名)
- 方法二:用“|”符号,基本语法为
集合名 | 集合名
- 实例:
3、求反交集:即两个集合中各自独有的元素,同样有两种方法
- 方法一:用symmetric_difference()函数,基本语法为
集合名.symmetric_difference(集合名)
- 方法二:用“^”符号,基本语法为
集合名 ^ 集合名
- 实例:
4、求差集:即某一个集合独有的元素,也有两种方法
- 方法一:用difference()函数,基本语法为
集合名2.difference(集合名1)
表示集合2中有的而集合1中没有的元素 - 方法二:用“-”符号,基本语法
集合名1 - 集合名2
表示集合1中有而集合2中没有的元素 - 实例:
5、判断一个集合是否为另一个集合的子集,也有两种方法
- 方法一:用issubset()函数,基本语法为
集合名1.issubset(集合名2)
表示判断集合1是否为集合2的子集,返回值为bool类型 - 方法二:用“<”符号,基本语法为
集合名1 < 集合名2
表示判断集合1是否为集合2的子集,返回值为bool类型 - 实例:
4、集合与其他类型数据之间的转换
1、集合的去重功能
由于集合具有去重的特性,所以可以把列表等其它类型转转为集合,从而达到去重的效果。
2、将其他数据类型转为集合的基本语法:set(其他类型的数据(如列表))
3、将集合转为列表:list(集合名)
4、将集合转为不可变的数据类型的基本语法:frozenset(集合名)
5、实例: