Python3程序设计(第3版) 课件 第5章 Python的组合数据类型_第1页
Python3程序设计(第3版) 课件 第5章 Python的组合数据类型_第2页
Python3程序设计(第3版) 课件 第5章 Python的组合数据类型_第3页
Python3程序设计(第3版) 课件 第5章 Python的组合数据类型_第4页
Python3程序设计(第3版) 课件 第5章 Python的组合数据类型_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python的组合数据类型5.1序列类型Python的组合数据类型5.1序列类型序列类型的常用操作符操作符或方法功能描述xins如果x是s的元素返回True,否则返回

False。xnotins如果x不是s的元素返回True,否则返回

False。s+t返回s和t的连接。s*n将序列s复制n次。s[i]索引,返回序列的第i个元素。s[i:j]分片,返回包含序列s第i到j个元素的子序列(不包含第j个元素)。s[i:j:k]返回包含序列s第i到j个元素以k为步长的子序列。len(s)返回序列s的元素个数(长度)。min(s)返回序列s中的最小元素。max(s)返回序列s中的最大元素。s.index(x[,i[,j]])序列s中从i开始到j位置中第一次出现元素x的位置。s.count(x)序列s中出现x的总次数。lst=[1,2,3,4,5]列表作为一种序列类型,使用序列的常用操作符可以完成列表的切片、检索、计数等基本操作。列表的基本操作5.2.15.2列表Python的组合数据类型列表的方法5.2.2操作符或方法功能描述ls[i]=x将列表ls的第i项元素替换为x。ls[i:j]=lst用列表lst替换列表ls中第i到第j项元素(不含第j项)。ls[i:j:k]=lst用列表lst替换列表ls中第i到第j项以k为步长的元素(不含第j项)。dells[i:j]删除列表ls第i到第j项元素。dells[i:j:k]删除列表ls第i到第j项以k为步长的元素。ls+=lst或ls.extend(lst)将列表lst元素追加到列表ls中。ls*=n更新列表ls,其元素重复n次。ls.append(x)在列表ls最后增加一个元素x。ls.clear()删除列表ls中的所有元素。ls.copy()复制生成一个包括ls中所有元素的新列表。ls.insert(i,x)在列表ls的第i个位置增加元素x。ls.pop(i)返回列表ls中的第i项元素并删除该元素。ls.remove(x)删除列表中出现的第一个x元素。ls.reverse(x)反转列表ls中的元素。ls.sort()排序列表ls中的元素。遍历列表可以逐个处理列表中的元素,通常使用for循环和while循环来实现。遍历列表5.2.35.2列表Python的组合数据类型以下代码的输出结果是______。ls=['book',23,[2010,'stud1'],20]print(ls[2][1][-1])sstud11结果错误ABCD单选题列表推导式可以通过轻量级的循环简单快捷地创建列表,语法格式如下。[x表达式forxin列表if条件表达式][x,y表达式forxin列表1foryin列表2if条件表达式]列表推导式5.2.45.2列表Python的组合数据类型1.使用for循环创建简单列表创建一个0~10的列表的代码。>>>alist=[xforxinrange(11)]>>>alist[0,1,2,3,4,5,6,7,8,9,10]2.在循环中使用if分支来创建列表创建1~10之间偶数平方的列表的代码。>>>blist=[x*xforxinrange(11)ifx%2==0]>>>blist[0,4,16,36,64,100]列表推导式可以通过轻量级的循环简单快捷地创建列表,语法格式如下。[x表达式forxin列表if条件表达式][x,y表达式forxin列表1foryin列表2if条件表达式]列表推导式5.2.45.2列表Python的组合数据类型3.使用多重for循环创建列表可以使用多重循环创建列表。使用二重循环创建列表的代码。>>>clist=[(x,y)forxinrange(1,4)foryinrange(10,40,10)]>>>clist[(1,10),(1,20),(1,30),(2,10),(2,20),(2,30),(3,10),(3,20),(3,30)]4.列表推导式中使用内置函数或自定义函数将列表中的所有字符转换成小写的代码。>>>lst=['Spring','Summer','Autumn','Winter']>>>[season.lower()forseasoninlst]['spring','summer','autumn','winter']5.3元组Python的组合数据类型元组的基本操作5.3.1tup=(1,2,3,4,5)是包含0个或多个元素的不可变序列类型。任何元素不能替换或删除创建元组,只要将元组的元素用小括号包围,并使用逗号隔开即可。例5-7:列表和元组相互转换的函数是tuple(lst)和list(tup)。例5-85.3.2元组与列表的转换5.3元组Python的组合数据类型生成器推导式5.3.3含义:生成器推导式与列表推导式类似,但生成器推导式使用小括号来定义,而列表推导式使用中括号定义。与列表推导式不同,生成器推导式的结果是一个生成器对象,不是列表,也不是元组。场景:使用列表推导式会创建一个列表。当一个列表包含很多个元素时,会占用很大的存储空间。如果仅需要访问列表的前几个元素,这个列表的空间效率是很低的。使用生成器推导式不需要创建完整的列表,可以根据某种算法边循环边计算来生成元素,对于生成大量可遍历数据,生成器推导式非常有效,可以提高程序对内存的使用效率。用法:使用生成器对象的元素时,可以根据需要将其转化为列表或元组,也可以使用生成器对象的__next__()方法(Python3.x版本支持)进行遍历,或者直接将其作为迭代器来使用。但是不管用哪种方法访问元素,当所有元素访问结束以后,如果需要重新访问其中的元素,必须重新创建生成器对象。例5-9:5.3元组Python的组合数据类型序列解包5.3.4序列解包是Python编程中非常重要和常用的一个功能,可以用简洁的方法完成复杂的功能,增强程序的可读性并减少代码量。>>>a,b,c=1,2,3>>>tuple1=(False,3,'test')>>>x,y,z=tuple1>>>x,y,z功能对多个变量同时赋值>>>dicts={'a':1,'b':2,'c':3}>>>v1,v2,v3=dicts>>>x,y,z=dicts.items()>>>x,y,z=dicts.values()功能应用于字典操作>>>

lst

=

['a',

'b',

'c']>>>

for

i,

v

in

enumerate(lst):

print(i,v)

>>>print(*[1,2,3,4],4,*(5,6))>>>*range(4),4>>>{*range(4),4,(5,6,7,8,9)}>>>{*range(4),4,*(5,6,7,8,9)}

功能使用enumerate()函数5.4字典Python的组合数据类型字典的基本操作5.4.11.创建字典字典由“{}”定义,键和值用冒号分开,元素之间用逗号分隔。dict={"one":1,"two":2,"three":3}字典是内置的映射类型,由key-value的键值对组成。搜索字典时先查找键,找到键后就可直接获取该键对应的值。字典中的值无特殊顺序,但都存储在一个特定的键(key)里,键可以是数字、字符串以及元组等。2.检索字典元素

使用in运算符可以测试指定的键值是否存在于字典中:

keyindicts

使用表达式dicts[“key”],返回key对应的值。3.添加与修改字典元素向字典中添加新的键值对,或修改键所关联的值用:

dicts[key]=value5.4字典Python的组合数据类型1.keys()、values()、items()方法2.get()、pop()、popitem()方法3.copy()、update()方法5.4.2字典的常用方法方法功能描述dicts.keys()返回所有的键信息。dicts.values()返回所有的值信息。dicts.items()返回所有的键值对。dicts.get(key,defualt)键存在则返回相应值,否则返回默认值。dicts.pop(key,default)键存在则返回相应值,同时删除键值对,否则返回默认值。dicts.popitem()删除字典中取出最后一个键值对,以元组(key,value)的形式返回。dicts.clear()删除所有的键值对。deldicts[key]删除字典中的某个键值对。keyindicts如果键在字典中则返回True,否则返回False。dicts.copy()复制字典。dicts.update(dicts2)更新字典,参数dict2为更新的字典。以下代码的输出结果是______。d={'food':{'cake':1,'egg':5}}print(d.get('cake','nothisfood'))egg1foodnothisfoodABCD单选题5.5集合Python的组合数据类型集合是0个或多个元素的无序组合。集合是可变的。集合中元素只能是基本数据类型。集合中的元素没有重复的。集合与字典有相似,但只有键,没有值。1.创建集合

用set()函数创建结合。myset={1,2,3,4,5}2.集合的常用操作5.5.1集合的基本操作方法功能描述S.add(x)添加元素。如元素x不在集合S中,将x增加到S中。S.clear()清除元素。移除S中的所有元素。S.copy()复制集合。返回集合S中的一个副本。S.pop()随机删除集合S中的一个元素。S为空时产生KeyError异常。S.discard(x)如果x在集合S中,移除该元素;x不存在时,不报异常。S.remove(x)如果x在集合S中,移除该元素;x不存在时,会产生KeyError异常。S.isdisjoint(T)判断集合中是否存在相同元素。如果集合S与T没有相同元素,则返回True。len(S)返回集合S的元素个数。5.5集合Python的组合数据类型5.5.2集合运算操作符或方法功能描述S&T或S.intersaction(T)交集,返回一个新集合,包括同时存在于集合S和T中元素。S|T或S.union(T)并集,返回一个新集合,包括集合S和T中的所有元素。S-T或S.difference(T)差集,返回一个新集合,包括在结合S中,但不在集合T中的元素。S^T或s.symmetric_difference_update(T)补集,返回一个新集合,包括集合S和T中的元素,但不包括同时在其中的元素。S<=T或S.issubset(T)子集测试,如S与T相同或S是T的子集,返回True,否则返回False。可以用S<T判断S是否为T的真子集。S>=T或S.issuperset(T)超集测试,如S与T相同或S是T的超集,返回True,否则返回False。可以用S>T判断S是否为T的真超集。5.6组合数据类型的应用Python的组合数据类型1.成绩统计分析的实现功能说明:有若干名学生的Python课程成绩分别为88,92,78,92,85,55,91,72,85,95等,利用列表分析成绩,输出平均值、最高的3个成绩和最低的3个成绩、成绩的中位数。实现思路:(1)将成绩保存在列表scores中,使用代码sum(scores)/len(scores)计算平均值,使用代码sorted(scores,reverse=True)[:3]找出最高的3个成绩,使用代码sorted(scores)[:3]找出最低的3个成绩。(2)计算中位数时需要先排序,列表元素个数为奇数时,中位数即排序后列表中间的数字;元素个数为偶数时,中位数为中间两个数字的算术平均数。原列表顺序不需要保留,可以使用列表的sort()方法进行排序。例5-225.6组合数据类型的应用Python的组合数据类型2.英文句子中的词频统计(1)用replace()方法将标点换为空格。(2)用split()函数拆分,生成单词列表。(3)定义一个空字典map1.(4)逐个读列表中单词,重复下面操作:若字典的key值中没有这个单词,word=0,向字典中添加元素,键是这个单词,值是1;若字典的key值中有这个单词,word+1。(5)字典转换为列表后,排序,输出。Key:Value:map1isbetterthanuglyExplicitimplict111111222Beautiful1words=[]5.6组合数据类型的应用Python的组合数据类型3.二分查找的实现二分查找算法:(1)使用列表的sort()函数对数据排序。(2)输入要查找的数据key,元素初始位置low=0;元素最后位置high=len(list1)-1;f=false。(3)计算中间元素位置。用数值key与中间位置的数据比较,若相等,则找到,f=True,查找结束;否则,将key值与中间数据比

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论