为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第8天 Python的Set容器

课程名称:Python3 入门教程(新版)

课程章节: Python的Set容器

主讲老师:咚咚呛

课程内容

  • 什么是Set
  • 读取Set元素
  • 添加Set元素
  • 删除Set元素
  • 操作Set的其他元素

课程收获

set和list类似,拥有一系列元素,但是set和list不一样,set里面的元素是不允许重复的,而list里面可以包含相同的元素;set与list的另一个区别是,set里面的元素是没有顺序的。

创建set

创建set的方式是使用set(),并传入一个list,list的元素将会被转换成set的元素。

s = set(['Alice', 'Bob', 'Candy', 'David', 'Ellena'])
print(s)
读取set元素

由于set里面的元素是没有顺序的,因此我们不能像list那样通过索引来访问。访问set中的某个元素实际上就是判断一个元素是否在set中,这个时候我们可以使用in来判断某个元素是否在set中。

names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
name_set = set(names)
name = 'bob'
print(name.capitalize() in name_set)
set添加元素

set提供了add()方法,我们可以使用add()方法,往set里面添加元素。set提供了update()方法,可以一次性给set添加多个元素。

s = set([])
l = ['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']

for i in l:
    s.add(i)
print(s)

s.update(l);
print(s)
删除set元素

set提供了remove()方法允许我们删除set中的元素

L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
S = set([1, 3, 5, 7, 9, 11])

for i in L:
    if(i in S):
        S.remove(i)
    else:
        S.add(i)
        
print(S)
操作set的其他方法
  • 不会报错的删除方法discard()
name_set = set(['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl'])
name_set.discard('Jenny')
name_set.discard('Tom') # 不会报错
  • 清除所有元素的方法clear()
name_set = set(['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl'])
name_set.clear()
  • 集合的子集和超集

set提供方法判断两个set之间的关系,比如两个集合set,判断其中一个set是否为另外一个set的子集或者超集

s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 判断s1是否为s2的子集
s1.issubset(s2) # ==> True
# 判断s2是否为s1的超集
s2.issuperset(s1) # ==> True
  • 判断集合是否重合

有时候需要判断两个集合是否有重合的地方,如果使用传统的方法,需要使用for循环一个一个的去判断,非常麻烦,set提供isdisjoint()方法,可以快速判断两个集合是否有重合,如果有重合,返回False,否则返回True

s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
s1.isdisjoint(s2) # ==> False,因为有重复元素1、2、3、4、5


s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])

if not s1.isdisjoint(s2):
    for i in list(s1):
        if i in s2:
            print(i)

学习截图

vtHFBV.md.png

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消