《中职电子与信息:《yhon小屋》2-4-3 案例.docx》由会员分享,可在线阅读,更多相关《中职电子与信息:《yhon小屋》2-4-3 案例.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Python小屋之二Python序列2.4集合案例精选作为集合的具体应用,可以使用集合快速提取序列中单一元素,即提取出序列中所有不 重复元素。如果使用传统方式,需要编写下面的代码:1 import random23 #生成100个介于09999之间的随机数4 5 lr = random.choice(range(10000) for i in range(lOO)6 7 nr =8 9 for i in lr:10 if i not in nr:11 nr.append(i)12 len(lr)10013 len(nr)14 99 #说有卜中有一个重度的元素代码块集合对象的pop()方法用于随
2、机删除并返回集合中的一个元素,如果集合为空则抛出异 常;remover。方法用于删除集合中的元素,如果指定元素不存在则抛出异常;discard。用于 从集合中删除一个特定元素,如果元素不在集合中则忽略该操作;clear。方法清空集合删除 所有元素。例如:1 s2 1, 2, 3, 4)3 4 s.discard(5)#删除元素,集合中不存在则忽略该操作56 s.remove(5)#删除元素,集合中不存在则抛出异常7 Traceback (most recent call last):8 File , line 1, in 9 s.remove(5)#删除元素,集合中不存在则抛出异常代码块10
3、KeyError: 511 12 s.pop()#删除并返回一个元素13 114 15 s.clear()16 17 s18 set()19 #清空集合中所有元素2集合运算代码块Python集合支持交集、并集、补集、差集等运算,例如:1 aset = set(8/9,10/ll/12/13)2 bset = 0,1,2,37,834 aset | bset#并集5。1, 2, 3,7, 8, 9,10,11,12,136 7 aset.union(bset)#并集8。1, 2, 3,7, 8, 9, 10,11,12, 139 10 aset & bset#交集11 812 aset.inte
4、rsection(bset)#交集1314 15 aset - bset#差集16 9,10,11,12,1317 18 aset.difference(bset)#差集19 9,10,11,12,1320 21 aset.symmetric_difference(bset)#对称差集22。1, 2, 3, 7, 9, 10,11, 12,13)23 24 #对称差集的意思就是,提出两个集合的交集部分,剩下的元素组成的集合25 26 aset A bset27。1, 2, 3,7, 9, 10,11, 12,1328 2930)稍微总结一下:31#并集:|union32 #交集:&inters
5、ection33 #差集:-difference34 #对称差集:Asymmetric_difference1#比价集合的大小,确切地说是判断集合之间的包含关系23 x = 1,2,34y = lz2,55 z = 1,2,3,46 7 x x y10 False11 x y 23#关系运算符 、=、 B成立的话,说明集合B的元素都在集合A中,是集合B包含于集合A2627 a = 1,2,328 b = 1,2,329 a bFalse30 a = b#两个集合元素是相通的,判断结果返I可True31 True32 a 39 a = 1,2,3,440 b = 1,2,341 a bTrue4
6、2 a 代码块2.42423 a = 1,24 b = 1,25 c = 1,2,36 7 a.issubset(b)8 True9 10 b.issubset(b)11 True12 13 a.issubset(c)14 True15 16 c.issubset(a)17 False18 1920#测试集合a是否为集合b的子集#测试集合b是否为集合a的子集#测试集合a是否为集合b的子集#测试集合c是否为集合a的子集21#如果两个集合的元素相同,就互为子集代码块小提示:内置函数内n()、max。、min() sum()、sourted。以及成员测试运算符in也适用于集合。拓展知识:enum、e
7、num 模自定义枚举类型,除了本章介绍的常用数据类型,Python还通过collections, array he叩q、fractions等标准库提供了其他丰富的类型,这里简单介绍如何使用块提供的Enum类来创建枚举类型,其他标准库将在后续章节中根据内容的组织逐步进行介 绍。1 from enum import Enum#导入模块中的类23 class Color(Enum):4 red = 15 blue = 26green = 3789 #创建自定义枚举类10 Color.red#访问枚举类的成员11 12 13 type(Color.green)14 16 #查看枚举类成员的类型17 isinstancefColor.red,Color)18 True19 20 x = dict()21 xColor.red = red22 x23 : red24 #枚举类成员可以哈希,可以作为字典的“键”25 Color(2)26 27 28 29 Colorred30 31 32 33 r = Color.red34 r35 36 37 r.name38 red39 40 r.value41142 #返回指定值对应的枚举类成员43 list(Color)#枚举类是可以迭代的,所以可以转换为列表44 , , 45 代码块2A2.6
限制150内