Python 教程 - 集合(非常详细)零基础入门到精通,收藏这一篇就够了

有两种方法可以移除集合里的某个元素:

remove()

使用 集合.remove(元素) 可以将指定的元素移除,但如果该元素不存在,就会执行错误。

a = {0,1,2,3,'x','y','z'}   a.remove('x')   print(a)   # {0, 1, 2, 3, 'y', 'z'}   

discard()

如果不希望在移除元素时发生执行错误的情况,可以使用 集合.discard(元素) 移除指定元素。

a = {0,1,2,3,'x','y','z'}   a.discard('x')   a.discard('a')   # 不会发生错误   print(a)         # {0, 1, 2, 3, 'y', 'z'}   

集合运算

交集、并集、差集、对称差集

集合有四种运算类型,分别是“交集、并集、差集、对称差集”。通过下图可以了解四种运算类型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用集合运算有两种方法,一种是使用特定的方法,另一种是使用“符号”(集合运算符)。

集合方法运算符
交集a.intersection(b)a&b
并集a.union(b)a|b
差集a.difference(b)a-b
对称差集a.symmetricdifference(b)a^b

下面的代码对 ab 进行集合运算。

a = {1,2,3,4,5}   b = {3,4,5,6,7}      # 交集   print(a.intersection(b))   # {3, 4, 5}   print(a&b)                 # {3, 4, 5}   # 并集   print(a.union(b))          # {1, 2, 3, 4, 5, 6, 7}   print(a|b)                 # {1, 2, 3, 4, 5, 6, 7}   # 差集   print(a.difference(b))     # {1, 2}   print(a-b)                 # {1, 2}   # 对称差集   print(a.symmetricdifference(b))  # {1, 2, 6, 7}   print(a^b)                        # {1, 2, 6, 7}   

子集合、超集合

假设有 A、B 两个集合,超集合和子集合的关系可以参考下图:

集合说明
超集合A 完全包含 B,A 和 B 所包含的元素可能完全相同
真超集合A 完全包含 B,且具有 B 没有的的元素
子集合B 完全被 A 包含,A 和 B 所包含的元素可能完全相同
真子集合B 完全被 A 包含,且 A 具有 B 没有的的元素

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下面的代码中有四个集合,使用「大于、小于、等于」可以表示彼此的关系,从打印出的结果可以看到各个集合之间的关系。

a = {1,2,3,4,5,6,7}   b = {3,4,5,6,7}   c = {1,2,3,4,5,6,7}   d = {6,7,8,9}      print(a<=a)   # True 自己是自己的子集合   print(b<=a)   # True b 是 a 的子集合   print(b<a)    # True b 也是 a 的真子集合 ( 因为没有等于,完全包含 )   print(c<=a)   # True c 是 a 的子集合   print(a<=c)   # True a 也是 c 的子集合   print(d<a)    # False d 和 a 没有子集合或超集合关系   

此外,使用「b.issubset(a)」方法可以检查 b 是否为 a 的子集合、「a.issuperset(b)」方法可以检查 a 是否为 b 的超集合。

a = {1,2,3,4,5,6,7}   b = {3,4,5,6,7}   c = {1,2,3,4,5,6,7}   d = {6,7,8,9}      print(b.issubset(a))     # True b 是 a 的子集合   print(a.issuperset(b))   # True a 是 b 的超集合   print(c.issubset(a))     # True c 是 a 的子集合   print(d.issubset(a))     # Fasle d 不是 a 的子集合   

获取集合长度

使用 len(集合) 可以返回某个集合的长度(有多少个元素)。

a = {1,2,3,4,5,6,7}   print(len(a))   # 7   

检查元素是否存在

使用 元素 in 集合 可以检查集合中是否存在某个元素,如果存在则返回 True,不存在则返回 False(使用 元素 not in 集合 可以判断不存在)。

a = {'a','b','c','d',1,2,3}   print('b' in a)    # True   print(2 in a)      # True   print(99 in a)     # False   

`黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值