Python 集合详解

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

Python 集合详解

  • 集合的概念
  • 集合的定义
  • 集合的运算
    • 子集操作
    • 差集操作
    • 并集操作:
    • 交集操作
  • 集合的常用方法
    • add()方法
    • clear()方法
    • copy()方法
    • remove函数
    • discard ()函数
    • pop()函数
    • update()函数
    • isdisjoint() 函数
    • issubset()
    • set()函数
    • len()函数
    • max()函数
    • min()函数
    • sorted()函数
    • sum()函数
  • 结尾

集合的概念

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

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

Python 集合详解_第1张图片
我们再试一下元组类型
Python 集合详解_第2张图片
由于元组是不可改变的,所以存储在集合中不会报错。

集合的定义

集合的定义有两种方式,一种为直接定义,示例代码如下:
Python 集合详解_第3张图片

另一种是使用set()函数定义,示例代码如下:
Python 集合详解_第4张图片

值得注意的是,使用set()函数定义的时候,set函数一次只能接受一个参数,如果一次传入多个就会报错,报错如下:
Python 集合详解_第5张图片

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

千万不要使用“{}”来定义空的集合,使用“{}”定义的话就不是集合类型了,而是字典类型了,示例代码如下:
Python 集合详解_第7张图片

上面我们创建的集合,它们的元素是可变的,我们称之为可变集合,我们也可以创建不可变的集合,示例代码如下:
Python 集合详解_第8张图片

集合的运算

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

子集操作

所谓子集操作,就是用来求一个集合是不是另一个集合的子集,如果是则返回True,如果不是则返回False,可以使用两种方式判断,一种为“<”号,A Python 集合详解_第9张图片
还有一种方式是使用issubset()方法,示例代码如下:
Python 集合详解_第10张图片

差集操作

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

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

并集操作:

并集操作可以简单的理解成把两个集合先合并,然后再去重,所以并集的结果是他们任意一个集合的子集,可以使用两种方式来求并集:一种为使用“|”,示例代码如下:
Python 集合详解_第13张图片
另一种是使用 union() 函数,示例代码如下:

Python 集合详解_第14张图片

交集操作

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

Python 集合详解_第15张图片

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

Python 集合详解_第16张图片

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

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

Python 集合详解_第18张图片

集合的常用方法

add()方法

向集合中添加元素,示例代码如下:
Python 集合详解_第19张图片
该方法只针对可变集合,下面使用此方法来操作一下不可变集合,看下报错,报错示例如下:
Python 集合详解_第20张图片
报错说根本就没有这个方法。

clear()方法

清空集合中所有元素,示例代码如下:
Python 集合详解_第21张图片

copy()方法

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

Python 集合详解_第22张图片

remove函数

移除集合中的指定元素,如果元素不存在则报错,示例代码如下:
Python 集合详解_第23张图片

下面我们再看一下如果元素不存在的报错,示例代码如下:
Python 集合详解_第24张图片

discard ()函数

discard函数的作用和remove一样,只不过是,discard函数如果没有找到元素不会报错,示例代码如下:
Python 集合详解_第25张图片

我们再看一下删除不存在的元素会怎么样,示例代码如下:
Python 集合详解_第26张图片

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

pop()函数

随机删除集合中的任意一个元素,示例代码如下:
Python 集合详解_第27张图片
值得注意的是,集合为空的时候,会报错,示例代码如下:

update()函数

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

Python 集合详解_第28张图片

isdisjoint() 函数

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

Python 集合详解_第29张图片

issubset()

判断一个集合是否是另一个集合的子集,如果是返回True,否则返回False,示例代码如下:
Python 集合详解_第30张图片

set()函数

我们从上面的学习知道可以使用set()函数创建集合,我们也可以使用set()函数来进行数据类型转换,如:将一个列表、元组、字符串等其他数据类型转成集合类型,示例代码如下:
Python 集合详解_第31张图片
从上面的结果我们发现,转换成集合后,会把重复的部分剔除。

len()函数

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

Python 集合详解_第32张图片

max()函数

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

Python 集合详解_第33张图片

min()函数

返回集合中最小的元素,示例代码如下:
Python 集合详解_第34张图片

sorted()函数

对集合进行排序,结果以列表的形式返回,示例代码如下:
Python 集合详解_第35张图片

sum()函数

对集合的所有元素进行求和,结果以整型返回,示例代码如下:
Python 集合详解_第36张图片

结尾

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

你可能感兴趣的:(Python入门笔记,python)