集合-set

之前介绍了列表、元组、字符串三个数据容器,其实已经满足大多数的使用场景。

这里思考一个问题,我们为什么还要学集合?

这里主要从特性去分析

  • 列表可修改、支持重复元素且有序
  • 元组、字符串不可修改、支持重复元素且有序

可以发现一个共同的特点是可以重复元素

如果场景需要对内容做去重处理,列表、元组、字符串就不方便了。

而集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序。可以修改元素内容

集合的常用操作:

set.add(item)                       #将item添加到set中,如果item已经在set中,则无任何效果
set.remove(item)                    #从set中删除item,如果item不是set的成员,则引发KeyError异常
set.discard(item)                   #从set中删除item.如果item不是set的成员,则无任何效果
set.pop()                           #随机删除一个集合元素,并从set删除,有变量接收则会接收删除到的元素
set.clear()                         #删除set中的所有元素
set.copy()                          #浅复制
set.update(t)                       #将t中的所有元素添加到set中,t可以是另一个集合、一个序列
 
set.union(t)                        #求并集,返回所有在set和t中的元素
set.intersection(t)                 #求交集,返回所有同时在set和t中的都有的元素
set.intersection_update(t)          #计算set与t的交集,并将结果放入set
set.difference(t)                   #求差集,返回所有在set中,但不在t中的元素
set.difference_update(t)            #从set中删除同时也在t中的所有元素
set.symmetric_difference(t)         #求对称差集,返回所有set中没有t中的元素和t中没有set中的元素组成的集合
set.sysmmetric_difference_update(t) #计算set与t的对称差集,并将结果放入set
 
set.isdisjoint(t)                   #如果set和t没有相同项,则返回True
set.issubset(t)                     #如果s是t的一个子集,则返回True
set.issuperset(t)                   #如果s是t的一个超集,则返回True

集合是无序的,所以集合不支持通过下标索引访问

很多操作跟列表类似,这里就挑几个写个demo

如下:

set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.difference(set2)    #求集合1和集合2的差集
print(set3)     # {2, 3}

set1.difference_update(set2)     #对比集合1和集合2,在集合1内,删除和集合2相同的元素
print(set1)     # {2, 3}
print(set2)     #结果:集合1被修改,集合2不变

set4=set1.union(set2)       #将集合1和集合2合并
print(set4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值