python-7.python集合

本文详细介绍了Python中的集合set,包括集合的定义、与列表的区别、创建方法,以及集合的增删改操作。此外,还讨论了如何获取集合的差集、交集和并集,并介绍了isdisjoint函数用于判断两个集合是否有相同元素。

一、什么是集合set

集合set是一个无序的不重复元素序列

常用来对两个列表进行交并差的处理性

集合支持加载不可变的数据类型,如元组、字符串、数字

表示举例:{ ‘name’ , 1 , 'xiaomu' }

二、集合与列表的区别

三、集合的创建方法

通过set函数创建,也可以使用有值的大括号创建,但不能使用空大括号 { } 创建空集合(因为会被认为是字典)

①    输出为 

②  输出为:

③  输出均报错

④  输出为:

⑤  输出为:

列表、字典 这两种数据类型 的数据是可以改变的

元组、字符串、数字 都是无法改变数据的数据类型

因此可见 集合加载的是 所有不可变数据的数据类型

而②为什么不报错呢 因为②使用了set 将列表中的成员(也就是字符串)放到了集合中 并不是真正把列表放进去 看其输出结果也就知道 集合里面是字符串 不是列表

输出为:

说明不能用空的大括号表示空集合 会被认为是字典类型

四、集合的增删改

1、集合的add函数

用于集合中添加一个元素,如果集合中已存在该元素 则函数不执行

set.add(item) 有参数:要添加到集合的元素;无返回值

python中一切皆对象

2、集合的update函数

加入一个新的集合(或列表、元组、字符串),如新集合内的元素在原集合中存在则无视

set.update(iterable) 有参数:iterable表示集合、列表、元组、字符串;无返回值、直接作用于原集合

可以用update替代add函数,update是add的升级版

输出为:

3、集合的remove函数

将集合中的某个元素删除,如元素不存在 将会报错

set.remove(item) 有参数:item是当前集合中的一个元素(注意不是索引、集合没有索引值); 无返回值 直接作用于原集合

4、集合的clear函数

清空当前集合中的所有元素

set.clear( ) 无参数 无返回值 直接作用于原集合

5、用del删除集合

6、重要说明

集合无法通过索引获取元素

集合无获取元素的任何方法

集合只是用来处理列表或元组的一种临时类型,不适合存储与传输

输出为:

五、获取两个集合的差集 difference函数

1、什么是差集

a b两个集合 由所有属于a且不属于b的元素组成的集合叫做a与b的差集

2、difference函数: a_set.difference(b_set)

返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中

函数用法:

a_set.difference(b_set)  有参数:b_set当前集合需要对比的集合;有返回值:返回原始集合与对比集合的差集(即a_set与b_set的差集)

输出为:

六、获取两个或多个集合的交集 intersection

1、什么是交集

2、intersection函数:a_set.intersection(b_set......)

返回两个或多个集合中都包含的元素,即交集

用法:

a_set.intersection(b_set......) 有参数:与当前集合对比的一个或多个集合(多个集合用逗号隔开);有返回值:返回原始集合与对比集合的交集

输出为:

注意:集合是无序的,不能用索引,可以把它变成列表后使用索引获取数据

七、获取两个或多个集合的并集 union函数

1、什么是并集

a,b两个集合中所有的不重复的元素 为a与b的并集

2、union函数

返回多个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次

用法:

a_set.union(b_set...) 有参数:b_set...与当前集合对比的一个或多个集合(参数也可以是列表类型的数据 准确的说 参数为ireterable);有返回值:返回原始集合与对比集合的并集

八、判断两个集合中是否有相同的元素—isdisjoint函数

a_set.isdisjoint(b_set)

判断两个集合是否包含相同的元素,如果没有相同的元素返回True,有相同的元素返回False

有参数:b_set:与当前集合用来判断的集合

有返回值:返回一个布尔值True 或 False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值