Loading...
墨滴

郑大钱呀

2021/09/05  阅读:50  主题:自定义主题1

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()函数

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

结尾

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

郑大钱呀

2021/09/05  阅读:50  主题:自定义主题1

作者介绍

郑大钱呀

微信搜索【郑大钱呀】公众号