Python 集合详解

更多内容,可以微信搜索[公][众][号]【郑大钱呀】,关注我们,一起学技术!

集合的概念

所谓集合就是把一堆数据放在一起,但是这些数据是有要求的:

  1. 数据不能重复,每一个数据都是唯一的 。
  2. 无序,什么叫无序呢,我们这里举一个例子,如果有一个集合,它有三个元素1、2、3 ,那么你在集合中不管是写成{1,2,3}、{1,3,2}还是{3,2,1},都表示的是同一个集合 。
  3. 集合只能存储不改变的元素,如字符串、数字、元组等。如果你存储的元素是可变的,比如列表,那么就会报错,示例如下:


我们再试一下元组类型

由于元组是不可改变的,所以存储在集合中不会报错。

集合的定义

集合的定义有两种方式,一种为直接定义,示例代码如下:

另一种是使用set()函数定义,示例代码如下:

值得注意的是,使用set()函数定义的时候,set函数一次只能接受一个参数,如果一次传入多个就会报错,报错如下:

所以当你需要传入多个值的时候,就需要传入可迭代的数据类型,比如元组、列表、字符串等。下面我们说一下如何定义一个空的集合,使用set()函数来定义一个空的集合,示例代码如下:

千万不要使用“{}”来定义空的集合,使用“{}”定义的话就不是集合类型了,而是字典类型了,示例代码如下:

上面我们创建的集合,它们的元素是可变的,我们称之为可变集合,我们也可以创建不可变的集合,示例代码如下:

集合的运算

集合的运算和数学中集合运算一样,有如下几种:子集、差集、并集、交集以及对称差,下面我们详细讲解。

子集操作

所谓子集操作,就是用来求一个集合是不是另一个集合的子集,如果是则返回True,如果不是则返回False,可以使用两种方式判断,一种为“<”号,A<B 表示的意思是A是不是B的子集,示例代码如下:

还有一种方式是使用issubset()方法,示例代码如下:

差集操作

差集操作是一个集合相对于另一个集合的,比如说求A集合与B集合的差集,就是A有的而B没有的部分,可以使用两种方式来求取差集,一种为:"-",示例代码如下:

从结果中我们发现a集合中的元素,b集合中只有7没有,所有结果就为{7},返回的数据类型依然也是一个集合,另一种方式是使用 difference()函数,示例代码如下:

并集操作:

并集操作可以简单的理解成把两个集合先合并,然后再去重,所以并集的结果是他们任意一个集合的子集,可以使用两种方式来求并集:一种为使用“|”,示例代码如下:

另一种是使用 union() 函数,示例代码如下:

交集操作

所谓交集操作,就是求两个集合都有的部分,可以使用两种方式来求交集,一种为使用“&”,示例代码如下:

另一种方式就是使用intersection()函数,示例代码如下:

对称差操作:所谓对称差操作就是将把两个集合都有的都剔除,然后将剩下的元素合并成一个集合,可以使用两种方式来求对称差,一种为使用“^”符号,示例代码如下:

另一种方式就是使用symmetric_difference()函数,示例代码如下:

集合的常用方法

add()方法

向集合中添加元素,示例代码如下:

该方法只针对可变集合,下面使用此方法来操作一下不可变集合,看下报错,报错示例如下:

报错说根本就没有这个方法。

clear()方法

清空集合中所有元素,示例代码如下:

copy()方法

将集合复制给另一个变量,效果和直接赋值差不多,示例代码如下:

remove函数

移除集合中的指定元素,如果元素不存在则报错,示例代码如下:

下面我们再看一下如果元素不存在的报错,示例代码如下:

discard ()函数

discard函数的作用和remove一样,只不过是,discard函数如果没有找到元素不会报错,示例代码如下:

我们再看一下删除不存在的元素会怎么样,示例代码如下:

从上面的结果我们发现,如果元素不存在,不会有任何操作

pop()函数

随机删除集合中的任意一个元素,示例代码如下:

值得注意的是,集合为空的时候,会报错,示例代码如下:

update()函数

向集合中一次添加多个元素,值得注意的是传入的参数必须是可迭代的,如列表、元组、字符串、集合等,示例代码如下:

isdisjoint() 函数

此函数用来判断两个集合是否有空交集,所谓空交集就是他们的交集为空,如果为空交集,则返回True,否则返回False,示例代码如下:

issubset()

判断一个集合是否是另一个集合的子集,如果是返回True,否则返回False,示例代码如下:

set()函数

我们从上面的学习知道可以使用set()函数创建集合,我们也可以使用set()函数来进行数据类型转换,如:将一个列表、元组、字符串等其他数据类型转成集合类型,示例代码如下:

从上面的结果我们发现,转换成集合后,会把重复的部分剔除。

len()函数

获取集合中元素的个数,示例代码如下:

max()函数

返回集合中最大的元素,示例代码如下:

min()函数

返回集合中最小的元素,示例代码如下:

sorted()函数

对集合进行排序,结果以列表的形式返回,示例代码如下:

sum()函数

对集合的所有元素进行求和,结果以整型返回,示例代码如下:

结尾

本期的内容就到这里了,如有不足之处还请大家多多指正,祝大家吃的香,睡得好,赚的多,学的好,周末愉快,欢迎大家留言、关注、转发加收藏,我们下期见,拜拜。

Python集合是一种无序且不重复的数据结构。它们类似于列表和元组,但是不允许有重复项。集合可以用于去重、交集、并集和差集等操作。下面是Python集合的详细介绍。 1. 创建集合 可以使用大括号{}或set()函数来创建一个空集合,也可以在大括号直接输入元素来创建集合。例如: ```python # 创建空集合 set1 = set() print(set1) # set() # 创建有元素集合 set2 = {1, 2, 3} print(set2) # {1, 2, 3} set3 = set([4, 5, 6]) print(set3) # {4, 5, 6} ``` 2. 集合操作 可以使用以下操作符和方法来操作Python集合: - 添加元素:add()方法、update()方法 - 删除元素:remove()方法、discard()方法、pop()方法 - 清空集合:clear()方法 - 特殊操作:交集&、并集|、差集-、对称差集^ 例如: ```python # 添加元素 set1.add(1) print(set1) # {1} set1.update([2, 3]) print(set1) # {1, 2, 3} # 删除元素 set1.remove(2) print(set1) # {1, 3} set1.discard(4) # 如果元素不存在,不会报错 print(set1) # {1, 3} set1.pop() # 随机删除一个元素 print(set1) # {3} # 清空集合 set1.clear() print(set1) # set() # 特殊操作 set2 = {1, 2, 3} set3 = {3, 4, 5} print(set2 & set3) # {3},交集 print(set2 | set3) # {1, 2, 3, 4, 5},并集 print(set2 - set3) # {1, 2},差集 print(set2 ^ set3) # {1, 2, 4, 5},对称差集 ``` 3. 集合方法 Python集合还有一些常用的方法,例如: - len()方法:返回集合元素的个数 - in关键字:判断元素是否在集合 - issubset()方法:判断一个集合是否是另一个集合的子集 - issuperset()方法:判断一个集合是否是另一个集合的超集 - union()方法:返回两个集合的并集 - intersection()方法:返回两个集合的交集 - difference()方法:返回两个集合的差集 - symmetric_difference()方法:返回两个集合的对称差集 例如: ```python set1 = {1, 2, 3} set2 = {3, 4, 5} print(len(set1)) # 3 print(2 in set1) # True print(4 in set1) # False print(set1.issubset(set2)) # False print(set2.issuperset(set1)) # False print(set1.union(set2)) # {1, 2, 3, 4, 5} print(set1.intersection(set2)) # {3} print(set1.difference(set2)) # {1, 2} print(set1.symmetric_difference(set2)) # {1, 2, 4, 5} ``` 总之,Python集合是一种非常实用的数据结构,可以用于去重、交集、并集和差集等操作。掌握集合的使用方法可以帮助你更加高效地处理数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑大钱呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值