小Bob 小Bob Bob来啦

2020年12月17日 00:06 __ _ _ _ _

文章配图

好心境决定好命运,拥有良好的心境,才会活出潇洒的人生。

——《天气之子》

文章配图
如何将 一组数字当作** 一个数据 ** 呢?
这就要讲到 组合数据类型 了,组合数据类型也包括 集合类型,序列类型和字典类型。
今天先看集合类型啦~

关于集合的知识点:

  • 集合类型定义

  • 集合操作符

  • 集合处理方法

  • 集合类型应用场景

集合类型定义

集合 是多个元素的无序组合,与在数学中的概念一致,且具有一致性集合中的元素也是要求 唯一性 ,即在集合中只能出现一次。

即:在python中,集合中的元素也是没有顺序的。
To:在Python中要求集合的元素是不可更改的,不能是可变数据类型。

建立集合 类型 用{}或set,而 建立空集合类型,必须用set。 集合用大括号{}表示,元素之间用逗号分隔, 如:

A={"python",122,("python",122)}#建立一个集合类型

带圆括号的为 元组类型 ,如上即建立了一个有三个元素的集合。

B=set("pythonpy122")#用set建立集合

To:其中的元素为:{‘1’,’2’,’p’…}其中由于元素的唯一性, 所以相同的2和p和y都会被去掉。

集合操作符

在数学中,集合主要有 并,交,差,补运算。

那么在python中提供了 6个基本操作符。


S|T #返回一个新集合,包括在集合S和T中的所有元素,即数学中的并运算S-T #返回一个新集合,包括在集合S但不在T中的元素,实现了两个集合之间的减操作S&T #返回一个新集合,包括同时在集合S和T中的元素 实现了交操作S^T #返回一个新集合,包括集合S和T中的非相同元素 实现了补操作S<=T或S<T #返回True/False,判断S和T的子集关系S>=T或S>T #返回True/False,判断S和T的包含关系

另外Python还提供了 4个增强操作符:


S|=T# 更新集合S,包括在集合S和T中的所有元素S-=T  #更新集合S,包括在集合S但不在T中的元素S&=T #更新集合S,包括同时在集合S和T中的元素S^=T #更新集合S,包括在集合S和T中的非相同元素

实例:


A={"p","y",123}B=set("pypy123")print(A-B)print(B-A)print(A&B)print(A|B)print(A^B)

集合处理方法

这里提供了 集合相关的处理方法 (如相关基本操作函数,也是最常用的):


S.add(x) #如果x不在集合S中,将x增加到S。S.discard(x) #移除S中元素x,如果x不在集合S中,,不报错。S.remove(x) #移除S中元素x,如果x不在集合S中,产生Key Error异常,#接上:比如如果你在编写代码时加入了异常处理,那么在编写代码时就可以考虑使用remove函数。S.clear() #移除S中所有元素S.pop() #随机返回S的一个元素,更新S,若S为空产生Key Error返回给用户(返回时也会将这个元素随即删除,若集合中没有这个元素,那么会返回Key Error异常)S.copy() #返回跟集合S一样的集合副本len(S) #返回集合S的元素个数x in S #判断S中元素x,x在集合中,返回True,若不在,则返回Falsex not in S #判断S中元素x,x不在集合S中,返回True,否则返回Falseset(x) #将其它类型变量x转变为集合类型

代码实例:


A={"p","y",123}for it in A:    print(it,end="")try:    while True:        print(A.pop(),end="")except:            pass

集合应用场景

包含关系的比较:比如判断某个数据是否在某一组数据中,那么这个时候就可以使用集合来处理相关数据。

代码实例:


print("p" in {"p","y",123})#判断某个数据是否在某组数据中print({"p","y"}>={"p","y",123})#数据之间的比较其实,集合用得最典型的一个应用场景就是数据去重,这也是利用了集合元素的唯一性当然,对于数据去重,你也可以通过遍历的方式逐一检查,但太麻烦了如果利用集合的方式,比如:ls=["p","y","y","p",123]s=set(ls)print(s)如果想将元素类型变回列表类型,那么只需加入ls=["p","y","y","p",123]s=set(ls)print(s)it=list(s)print(it)#将集合类型变回列表类型

(Python系列)未完待续…

文章配图

往期推荐:

来学Python啦,代码复用与函数递归 2020-12-10
文章配图

来学Python啦,Pyinstaller库及科赫雪花小包裹问题分析 2020-12-15
文章配图

2020年12月Tiobe榜单:Python可第四次年度语言? 2020-12-08
文章配图

为你,千千万万遍.

关注 程序员Bob 公众号,与你一起终生学习

文章配图

一键三连,就差你了
文章配图

预览时标签不可点

阅读




__