首页 / 更多教程 / 2.4.2 集合操作与运算
2.4.2 集合操作与运算
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了2.4.2 集合操作与运算,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4450字,纯文字阅读大概需要7分钟。
内容图文
![2.4.2 集合操作与运算](/upload/InfoBanner/zyjiaocheng/1334/b25297c46b41422ba0ac13d2a704bcfe.jpg)
1 集合元素增加与删除
使用集合对象的add()方法可以为其增加新元素,如果该元素已存在于集合则忽略该操作;update()方法用于合并另外一个集合中的额元素到当前集合中。例如:
1 >>> s = {1,2,3} 2 >>> s.add(3) 3 >>> s 4 {1, 2, 3} 5 >>> #添加元素,重复元素自动忽略 6 >>> 7 >>> s.update({3,4}) #更新当前集合,自动忽略重复的元素 8 >>> 9 >>> s 10 {1, 2, 3, 4} 11 >>>
集合对象的pop()方法用于随机删除并返回集合中的一个元素,如果集合为空则抛出异常;remover()方法用于删除集合中的元素,如果指定元素不存在则抛出异常;discard()用于从集合中删除一个特定元素,如果元素不在集合中则忽略该操作;clear()方法清空集合删除所有元素。例如:
1 >>> s 2 {1, 2, 3, 4} 3 >>> 4 >>> s.discard(5) #删除元素,集合中不存在则忽略该操作 5 >>> 6 >>> s.remove(5) #删除元素,集合中不存在则抛出异常 7Traceback (most recent call last): 8 File "<pyshell#80>", line 1, in <module> 9 s.remove(5) #删除元素,集合中不存在则抛出异常10 KeyError: 5 11 >>> 12 >>> s.pop() #删除并返回一个元素13 1 14 >>> 15 >>> s.clear() #清空集合中所有元素16 >>> 17 >>> s 18set() 19 >>>
2 集合运算
Python集合支持交集、并集、补集、差集等运算,例如:
1 >>> aset = set([8,9,10,11,12,13]) 2 >>> bset = {0,1,2,3,7,8} 3 >>> 4 >>> aset | bset #并集 5 {0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13} 6 >>> 7 >>> aset.union(bset) #并集 8 {0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13} 9 >>> 10 >>> aset & bset #交集11 {8} 12 >>> aset.intersection(bset) #交集13 {8} 14 >>> 15 >>> aset - bset #差集16 {9, 10, 11, 12, 13} 17 >>> 18 >>> aset.difference(bset) #差集19 {9, 10, 11, 12, 13} 20 >>> 21 >>> aset.symmetric_difference(bset) #对称差集22 {0, 1, 2, 3, 7, 9, 10, 11, 12, 13} 23 >>> 24 >>> #对称差集的意思就是,提出两个集合的交集部分,剩下的元素组成的集合25 >>> 26 >>> aset ^ bset 27 {0, 1, 2, 3, 7, 9, 10, 11, 12, 13} 28 >>> 2930#稍微总结一下:31#并集: | union32#交集: & intersection33#差集: - difference34#对称差集: ^ symmetric_difference
1 # 比价集合的大小,确切地说是判断集合之间的包含关系 2 3 >>> x = {1,2,3} 4 >>> y = {1,2,5} 5 >>> z = {1,2,3,4} 6 >>> 7 >>> x < z 8True 9 >>> 10 >>> x > y 11False 12 >>> 13 >>> x < y 14False 15 >>> 16 >>> y < z 17False 18 >>> 1920212223#关系运算符 >、>=、<、<=作用于集合时表示集合之间的包含关系,而不是集合中元素的大小关系。2425#如果 A > B 成立的话,说明集合B的元素都在集合A中,是集合B包含于集合A2627 >>> a = {1,2,3} 28 >>> b = {1,2,3} 29 >>> 30 >>> a > b 31False 32 >>> 33 >>> a >= b #两个集合元素是相通的,判断结果返回True34True 35 >>> 36 >>> a <= b 37True 38 >>> 39 >>> a = {1,2,3,4} 40 >>> b = {1,2,3} 41 >>> 42 >>> a > b 43True 44 >>> 45 >>> a < b 46False 47 >>>
1 >>> #测试是否为子集 2 >>> 3 >>> a = {1,2} 4 >>> b = {1,2} 5 >>> c = {1,2,3} 6 >>> 7 >>> a.issubset(b) #测试集合a是否为集合b的子集 8True 9 >>> 10 >>> b.issubset(b) #测试集合b是否为集合a的子集11True 12 >>> 13 >>> a.issubset(c) #测试集合a是否为集合b的子集14True 15 >>> 16 >>> c.issubset(a) #测试集合c是否为集合a的子集17False 18 >>> 192021#如果两个集合的元素相同,就互为子集
小提示:内置函数len()、max()、min()、sum()、sourted()以及成员测试运算符in也适用于集合。
拓展知识:
自定义枚举类型,除了本章介绍的常用数据类型,Python还通过collections、enum、array、heapq、fractions等标准库提供了其他丰富的类型,这里简单介绍如何使用enum模块提供的Enum类来创建枚举类型,其他标准库将在后续章节中根据内容的组织逐步进行介绍。
1 >>> from enum import Enum #导入模块中的类 2 >>> 3 >>> class Color(Enum): #创建自定义枚举类 4 red = 1 5 blue = 2 6 green = 3 7 8 9 >>> 10 >>> Color.red #访问枚举类的成员11 <Color.red: 1> 12 >>> 13 >>> type(Color.green) #查看枚举类成员的类型14 <enum ‘Color‘> 15 >>> 16 >>> 17 >>> isinstance(Color.red,Color) 18True 19 >>> 20 >>> x = dict() 21 >>> x[Color.red] = ‘red‘#枚举类成员可以哈希,可以作为字典的“键”22 >>> x 23 {<Color.red: 1>: ‘red‘} 24 >>> 25 >>> Color(2) #返回指定值对应的枚举类成员26 <Color.blue: 2> 27 >>> 28 >>> 29 >>> Color[‘red‘] 30 <Color.red: 1> 31 >>> 32 >>> 33 >>> r = Color.red 34 >>> r 35 <Color.red: 1> 36 >>> 37 >>> r.name 38‘red‘39 >>> 40 >>> r.value 41 1 42 >>> 43 >>> list(Color) #枚举类是可以迭代的,所以可以转换为列表44 [<Color.red: 1>, <Color.blue: 2>, <Color.green: 3>] 45 >>>
原文:https://www.cnblogs.com/avention/p/8547896.html
内容总结
以上是互联网集市为您收集整理的2.4.2 集合操作与运算全部内容,希望文章能够帮你解决2.4.2 集合操作与运算所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。