Python集合的操作
1、什么是集合
- 集合(set)是一个无序的不重复元素序列(只能加载不可变的数据类型)
- 常用来对两个列表进行交并差的处理
- 集合与列表一样,支持所有数据类型
2、集合与列表的区别
功能 | 列表 | 集合 |
---|---|---|
顺序 | 有序 | 无序 |
内容 | 可重复 | 不可重复 |
功能 | 用于数据的使用 | 用于数据的交集并集差集的获取 |
索引 | 有索引 | 无索引 |
符号 | [] [1,2,3] | {} {1,2,3} |
3、集合的创建
通过set函数来创建集合,不能使用{}来创建空集合
a_set() = set() –>空集合
b_set() = set([1,2,3]) –>传入列表或元组
c_set() = set(1,2,3) –>传入元素
d_set() = () –> 错误的方法
4、集合的增删改
集合的add函数
功能:用于集合中添加一个元素,如果集合中已存在该元素则函数不执行
用法:set.add(item)
参数:item:要添加到集合中的元素
返回值:无返回值
In [1]: a_set = set() In [2]: a_set.add('david') In [3]: print(a_set) Out [1]: {'david'}
集合的update函数
功能:加入一个新的集合(或列表,元组),如新集合内的元素在元集合中存在则无视
用法:set.update(iterable)
参数:iterable:一个集合或列表或元组
In [1]: a_set = set() In [2]: a_set.update([1,2,3]) In [3]: print(a_set) Out [1]: {1,2,3}
集合的remove函数
功能:将集合中的某个元素删除,如元素不存在则报错
用法:set.remove(item)
参数:item:当前集合中的一个元素
返回值:无返回值,直接作用于原集合
In [1]: a_set = {1,2,3} In [2]: a_set.remove(3) In [3]: print(a_set) Out [1]: {1,2}
集合的clear函数
功能:清空当前集合中的所有元素
用法:set.clear()
参数:无
返回值:无返回值,直接作用于原集合
In [1]: a_set = {1,2,3} In [2]: a_set.clear() In [3]: print(a_set) Out [1]: set()
用del删除集合
In [1]: a_set = {1,2,3} In [2]: del a_set In [3]: print(a_set) --> #报错
重要说明
- 集合无法通过索引获取元素
- 集合无获取元素的任何方法
- 集合只是用来处理列表或元组的一种临时类型,他不适合存储与传输
5、集合的差集——difference函数
什么是差集
a,b两个集合,由所有属于a且不属于b的元素组成的集合,叫做a与b的差集
difference的功能
返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中
difference的用法
用法:a_set.difference(b_set)
参数:b_set:当前集合需要对比的集合
返回值:返回原始集合于对比集合的差集,即a_set与b_set的差集
In [1]: a_set = {'name', 'david', 'jason'} In [2]: b_set = {'eva', 'david', 'jay'} In [3]: a_diff = a_set.difference(b_set) In [4]: print(a_diff) Out [1]: {'name', 'jason'}
6、集合的交集——intersection函数
什么是交集
a,b两个集合分别拥有的相同的元素集,成为a与b的交集
intersection的功能
返回两个或更多集合中都包含的元素,即交集
intersection的用法
用法:a_intersection(b_set…)
参数:b_set…:当前集合对比的1或多个集合
返回值:返回原始集合与对比集合的交集
In [1]: a_set = {'name', 'david', 'jason'} In [2]: b_set = {'eva', 'david', 'jay'} In [3]: a_inter= a_set.intersection(b_set) In [4]: print(a_inter) Out [1]: {'david'}
7、集合的并集——union函数
什么是并集
a,b两个集合中所有的元素(去掉重复)即为a与b的并集
union的功能
返回多个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次
union的用法
用法:a_set.union(b_set…)
参数:b_set…:与当前集合对比的1或多个集合
返回值:返回原始集合与对比集合的并集
In [1]: a_set = {'name', 'david', 'jason'} In [2]: b_set = {'eva', 'david', 'jay'} In [3]: un= a_set.union(b_set) In [4]: print(un) Out [1]: {'jason', 'jay', 'eva', 'name', 'david'}
7、集合的isdisjoint函数
isdisjoint的功能
判断两个集合是否包含相同的元素,如果没有返回Ture,否则返回false
isdisjoint的用法
用法:a_set.isdisjoint(b_set)
参数:b_set:与当前集合用来判断的集合
返回值:返回一个布尔值Ture或者False
In [1]: a_set = {'name', 'david', 'jason'} In [2]: b_set = {'eva', 'david', 'jay'} In [3]: result = a_set.isdisjoint(b_set) In [4]: print(result) Out [1]: False
转载请注明来源