大数据的Python基础课件第5章--集合

上传人:沈*** 文档编号:244231099 上传时间:2024-10-03 格式:PPTX 页数:16 大小:61.31KB
返回 下载 相关 举报
大数据的Python基础课件第5章--集合_第1页
第1页 / 共16页
大数据的Python基础课件第5章--集合_第2页
第2页 / 共16页
大数据的Python基础课件第5章--集合_第3页
第3页 / 共16页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第5章 集合,1,第5章 集合1,本章学习目标,理解集合中元素不重复的特点,熟练掌握使用集合去除重复内容的用法,理解并熟练掌握集合运算,熟悉内置函数对集合的操作,2,本章学习目标理解集合中元素不重复的特点2,5.1 基本概念,Python集合是无序的、可变的容器类对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,不允许重复。,集合中只能包含数字、字符串、元组等不可变类型的数据,而不能包含列表、字典、集合等可变类型的数据,包含列表等可变类型数据的元组也不能作为集合的元素。,集合中的元素是无序的,元素存储顺序和添加顺序并不一致。集合不支持使用下标直接访问特定位置上的元素,也不支持使用random中的choice()函数从集合中随机选取元素,但支持使用random模块中的sample()函数随机选取部分元素。,3,5.1 基本概念Python集合是无序的、可变的容器类对象,5.2 集合创建与删除,a=3,5#创建集合对象,x=3,5,2#集合中每个元素都必须是不可变的,Traceback(most recent call last):,File,line 1,in,x=3,5,2,TypeError:unhashable type:list,4,5.2 集合创建与删除 a=3,5,5.2 集合创建与删除,set(0,1,2,3,0,1,2,3,7,8),#转换时自动去掉重复元素,0,1,2,3,7,8,set(Hello world)#把字符串转换为集合,自动去除重复,d,r,o,w,l,H,e,x=set()#空集合,set(1,2),(3,)#只包含简单值的元组可以作为集合的元素,(1,2),(3,),set(1,2),(3,),4)#集合不能作为集合的元素,Traceback(most recent call last):,File,line 1,in,set(1,2),(3,),4),TypeError:unhashable type:set,5,5.2 集合创建与删除 set(0,1,2,5.3 集合常用操作与运算,元素增加与删除,集合运算,内置函数对集合的操作,6,5.3 集合常用操作与运算元素增加与删除6,5.3.1 集合元素增加与删除,(1)add()方法,s=20,30,50,s#自动调整顺序,不需要关心这一点,50,20,30,s.add(40),s,40,50,20,30,s.add(25)#自动调整顺序,s,40,50,20,25,30,s.add(25)#集合中已经有25,该操作被忽略,s,40,50,20,25,30,s.update(30,70)#自动忽略重复的元素,s,70,40,50,20,25,30,7,5.3.1 集合元素增加与删除(1)add()方法7,5.3.1 集合元素增加与删除,(2)pop()、remove()、discard(),s.discard(50)#删除50,s,70,40,20,25,30,s.discard(3)#集合中没有3,该操作被忽略,s,70,40,20,25,30,s.remove(3)#使用remove()方法会抛出异常,Traceback(most recent call last):,File,line 1,in,s.remove(3),KeyError:3,s.pop()#随机弹出并删除一个元素,70,s,40,20,25,30,8,5.3.1 集合元素增加与删除(2)pop()、remov,5.3.2 集合运算,a_set=set(8,9,10,11,12,13),b_set=0,1,2,3,7,8,a_set|b_set#并集,返回新集合,#自动忽略重复元素,0,1,2,3,7,8,9,10,11,12,13,a_set&b_set#交集,8,a_set-b_set#差集,9,10,11,12,13,a_set b_set#对称差集,0,1,2,3,7,9,10,11,12,13,9,5.3.2 集合运算 a_set=set(8,5.3.2 集合运算,1,2,3 1,3,2 1,2,5 1,2,4#第二个集合不是第一个集合的子集,False,10,5.3.2 集合运算 1,2,3 x=1,8,30,2,5,x#集合元素的存储顺序和写入顺序不一样,1,2,5,8,30,len(x)#返回元素个数,5,max(x)#返回最大值,30,sum(x)#所有元素之和,46,sorted(x)#内置函数sorted()总是返回列表,1,2,5,8,30,list(map(str,x),1,2,5,8,30,11,5.3.3 内置函数对集合的操作 x=1,8,5.3.3 内置函数对集合的操作,list(filter(lambda item:item%5=0,x),#支持filter()函数,保留能被5整除的数,5,30,list(enumerate(x)#支持enumerate()函数,(0,1),(1,2),(2,5),(3,8),(4,30),all(x)#检查是否所有元素都等价于True,True,any(x)#检查是否有元素等价于True,True,list(zip(x)#支持zip()函数,(1,),(2,),(5,),(8,),(30,),list(reversed(x)#不支持reversed()函数,Traceback(most recent call last):,File,line 1,in,list(reversed(x),TypeError:set object is not reversible,12,5.3.3 内置函数对集合的操作 list(filt,5.4 集合应用案例,例5-1,过滤书评,如果一条书评中重复的字超过一定比例就认为无效。,comments=这是一本非常好的书,作者用心了,作者大大辛苦了,好书,感谢作者提供了这么多的好案例,书在运输的路上破损了,我好悲伤。,为啥我买的书上有菜汤。,啊啊啊啊啊啊,我怎么才发现这么好的书啊,相见恨晚,好好好好好好好好好好好,虽然读起来比较轻松,但还是自己运行一下代码理解更深刻,书的内容很充实,你的书上好多代码啊,不过想想也是,编程的书嘛,肯定代码多一些,书很不错!一级棒!买书就上当当,正版,价格又实惠,让人放心!,无意中来到你小铺就淘到心意的宝贝,心情不错!,送给朋友的、很不错,这真是一本好书,讲解内容深入浅出又清晰明了,强烈推荐。,13,5.4 集合应用案例例5-1 过滤书评,如果一条书评中重,5.4 集合应用案例,#定义过滤规则,如果不重复的字超过70%才认为有效,rule=lambda s:len(set(s)/len(s)0.7,#使用内置函数filter()对书评进行过滤,result=filter(rule,comments),print(过滤后的书评:),for comment in result:,print(comment),14,5.4 集合应用案例#定义过滤规则,如果不重复的字超过70,5.4 集合应用案例,例5-2,使用集合实现筛选法求解不大于指定自然数的所有素数。,n=int(input(请输入一个自然数:),#生成指定范围的候选整数,使用集合存储,numbers=set(range(2,n),#最大数的平方根,m=int(n*0.5)+1,#遍历最大整数平方根之内的自然数,for p in range(2,m):,for i in range(2,n/p+1):,#在集合中删除数字p的所有倍数,numbers.discard(i*p),print(numbers),15,5.4 集合应用案例例5-2 使用集合实现筛选法求解不大,5.4 集合应用案例,例5-3,统计给定字符串中每个字符的出现次数,要求使用集合。,from string import digits,from random import choices,#生成包含100个随机数字的字符串,#join()是字符串的方法,用于把多个字符串连接成为更长的字符串,text=.join(choices(digits,k=100),#转换为集合,只保留唯一字符,uniqueCharacters=set(text),#统计每个唯一字符的出现次数,count()是字符串方法,for ch in uniqueCharacters:,print(ch,text.count(ch),sep=:),16,5.4 集合应用案例例5-3 统计给定字符串中每个字符的,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!