前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >来学Python啦,集合类型及其操作

来学Python啦,集合类型及其操作

作者头像
小Bob来啦
发布2020-12-28 10:17:16
3330
发布2020-12-28 10:17:16
举报

如何将一组数字当作一个数据呢?

这就要讲到组合数据类型了,组合数据类型也包括集合类型,序列类型和字典类型。

今天先看集合类型啦~

关于集合的知识点:

  • 集合类型定义
  • 集合操作符
  • 集合处理方法
  • 集合类型应用场景

集合类型定义

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

即:在python中,集合中的元素也是没有顺序的。

To:在Python中要求集合的元素是不可更改的,不能是可变数据类型。

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

代码语言:javascript
复制
A={"python",122,("python",122)}#建立一个集合类型

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

代码语言:javascript
复制
B=set("pythonpy122")#用set建立集合

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

集合操作符

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

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

代码语言:javascript
复制
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个增强操作符:

代码语言:javascript
复制
S|=T# 更新集合S,包括在集合S和T中的所有元素
S-=T  #更新集合S,包括在集合S但不在T中的元素
S&=T #更新集合S,包括同时在集合S和T中的元素
S^=T #更新集合S,包括在集合S和T中的非相同元素

实例:

代码语言:javascript
复制
A={"p","y",123}
B=set("pypy123")
print(A-B)
print(B-A)
print(A&B)
print(A|B)
print(A^B)

集合处理方法

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

代码语言:javascript
复制
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,若不在,则返回False
x not in S #判断S中元素x,x不在集合S中,返回True,否则返回False
set(x) #将其它类型变量x转变为集合类型

代码实例:

代码语言:javascript
复制
A={"p","y",123}
for it in A:
    print(it,end="")
try:
    while True:
        print(A.pop(),end="")
except:
            pass

集合应用场景

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

代码实例:

代码语言:javascript
复制
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系列)未完待续...

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员Bob 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档