集合set

本文介绍了Python中的集合set,包括创建、关系测试、增删改查及浅复制copy等操作,详细阐述了集合在去重和关系判断上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合set

集合是一个无序的,不重复的数据组合,主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系
1.创建集合
s = {1,2,3,4,5}                 #创建集合
ss = set('hello')               #创建集合
e = set()                       #创建空集合
t = set([1,2,1,2,3,4,5,3])      #将列表变成集合,去重
r = set(range(5))
print('s:',s,type(s))
print('ss:',ss,type(ss))
print('e:',e,type(e))
print('t:',t,type(t))
print('r:',r,type(r))

运行结果:

s: {1, 2, 3, 4, 5} <class 'set'>
ss: {'h', 'l', 'o', 'e'} <class 'set'>
e: set() <class 'set'>
t: {1, 2, 3, 4, 5} <class 'set'>
r: {0, 1, 2, 3, 4} <class 'set'>
2.关系测试
s = {1,3,5,8,16,33}
t = {5,8,12,15,22,44}
#交集
print('交集:',s&t)
print('交集:',s.intersection(t))
#并集
print('并集:',s|t)
print('并集:',s.union(t))
#差集
print('并集:',s-t)                  #在s中,但不在t中
print('并集:',s.difference(t))
#子集
print('子集',s.issubset(t))                #判断s是不是t的子集
r = s & t
print('子集',r.issubset(t))
print('子集<=',r <= t)
#父集
r = s | t
print('父集',s.issuperset(t))              #判断s是不是t的父集
print('父集',r.issuperset(t))
print('父集>=',r >= t)
#并集-交集
print('并集-交集',s ^ t)                    #项在t或s中,但不会同时出现在二者中
print('并集-交集',s.symmetric_difference(t))
#无交集为真
print('无交集为真',s.isdisjoint(t))                      #无交集为真
r = s - t
rr= t - s
print('无交集为真',r.isdisjoint(rr))

运行结果:

交集: {8, 5}
交集: {8, 5}
并集: {1, 33, 3, 5, 8, 12, 44, 15, 16, 22}
并集: {1, 33, 3, 5, 8, 12, 44, 15, 16, 22}
并集: {16, 1, 3, 33}
并集: {16, 1, 3, 33}
子集 False
子集 True
子集<= True
父集 False
父集 True
父集>= True
并集-交集 {1, 3, 12, 15, 16, 22, 33, 44}
并集-交集 {1, 3, 12, 15, 16, 22, 33, 44}
无交集为真 False
无交集为真 True
3.增删改查
s = set(range(5))
print(s)
if 2 in s:              #判断元素是都存在
    print('True')
s.add('s')              #增加单项
print(s)
t = set('hello')
s.update(t)             #添加多项
print(s)
s.remove('s')           #删除s
print(s)
s.discard('h')          #删除h
print(s)
s.pop()                 #随机删除
print(s)

运行结果:

{0, 1, 2, 3, 4}
True
{0, 1, 2, 3, 4, 's'}
{0, 1, 2, 3, 4, 'e', 'o', 'l', 'h', 's'}
{0, 1, 2, 3, 4, 'e', 'o', 'l', 'h'}
{0, 1, 2, 3, 4, 'e', 'o', 'l'}
{1, 2, 3, 4, 'e', 'o', 'l'}
4.浅复制copy
s = set(range(5))
t = s.copy()
s.remove(4)
print('s:',s)
print('t:',t)

运行结果:

s: {0, 1, 2, 3}
t: {0, 1, 2, 3, 4}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值