Python语言实用教程第4章-Python序列课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python语言实用教程第4章-Python序列课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 语言 实用教程 序列 课件
- 资源描述:
-
1、 序列(序列(Sequence)是指成员有序排列,并且可)是指成员有序排列,并且可以通过下标偏移量访问到它一个或几个成员的类型以通过下标偏移量访问到它一个或几个成员的类型统称。统称。序列是序列是Python语言特有的一类非常有用的数语言特有的一类非常有用的数据类型,它可以简单看成是其它语言中数组、结构据类型,它可以简单看成是其它语言中数组、结构体、字符串等类型构建出的复合类型,体、字符串等类型构建出的复合类型,它的类型层它的类型层次要高于其它语言的基本类型。为此,使用序列类次要高于其它语言的基本类型。为此,使用序列类型数据会非常便捷与实用。型数据会非常便捷与实用。Python序列可以包含大量复
2、合数据类型,用于序列可以包含大量复合数据类型,用于组织形成其它数据结构。组织形成其它数据结构。学习重点和难点:学习重点和难点:序列的基本概念序列的基本概念 序列的通用操作序列的通用操作 列表的基本使用列表的基本使用 元组的基本使用元组的基本使用 字符串的基本使用字符串的基本使用 字典与集合的基本使用字典与集合的基本使用 学习本章后将可以方便地处理大量序列类型的学习本章后将可以方便地处理大量序列类型的数据,程序处理数据的能力将大大提高。数据,程序处理数据的能力将大大提高。4.1 序列序列4.2 列表列表4.3 元组元组4.4 范围范围range4.5 字符串字符串4.6 序列间的转换操作序列间的
3、转换操作4.7 字典字典4.8 集合集合4.9 应用实例应用实例 序列是序列是PythonPython中基本的数据结构,也是中基本的数据结构,也是PythonPython的一类内置类型(的一类内置类型(Built-in TypeBuilt-in Type),内置类型就,内置类型就是构建在是构建在PythonPython解释器里面的类型,序列还可以理解释器里面的类型,序列还可以理解为是解为是PythonPython解释器里定义的某个类(解释器里定义的某个类(ClassClass)。)。列表(包括范围列表(包括范围(Range)(Range))和元组这两种数据类型)和元组这两种数据类型是最常被用到
4、的序列,是最常被用到的序列,PythonPython内建序列共有六种,内建序列共有六种,除了列表和元组之外,还有字符串、除了列表和元组之外,还有字符串、UnicodeUnicode字符字符串、串、bufferbuffer对象和最后一种对象和最后一种xrangexrange对象,只是后对象,只是后3 3种不常使用而已。种不常使用而已。4.1.1 序列的概念序列的概念4.1.2 序列通用操作序列通用操作 数据结构是通过某种方式数据结构是通过某种方式(例如对元素进行编例如对元素进行编号号)组织在一起的数据元素的集合,这些数据元素组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其
5、他数据结构可以是数字或者字符,甚至可以是其他数据结构。序列中的每个元素被分配一个序号:即元素的。序列中的每个元素被分配一个序号:即元素的位置,也称为索引。第一个索引是位置,也称为索引。第一个索引是 0,第二个则,第二个则是是 1,以此类推。序列中的最后一个元素标记为,以此类推。序列中的最后一个元素标记为-1,倒数第二个元素为,倒数第二个元素为-2,以此类推。,以此类推。本章主要讨论本章主要讨论列表列表、元组元组、范围范围(range)和和字字符串符串,其中列表是可以修改的,元组、范围和与,其中列表是可以修改的,元组、范围和与字符串则是不可修改的。字符串则是不可修改的。通用序列操作有:索引、分片
6、、序列相加、乘通用序列操作有:索引、分片、序列相加、乘法、成员资格、长度、最小值和最大值。法、成员资格、长度、最小值和最大值。1、索引、索引 序列中所有的元素都是有编号的,序列中所有的元素都是有编号的,从从0开始递开始递增。可以通过编号分别对序列的元素进行访问。增。可以通过编号分别对序列的元素进行访问。Python的序列也可以从右边开始索引,最右边的一的序列也可以从右边开始索引,最右边的一个元素的索引为个元素的索引为-1,向左开始递减。,向左开始递减。greeting=Hello greeting2#l 为输出结果,下同为输出结果,下同 greeting-1#o stringtesting3#
7、可以对任何一个字符串进行可以对任何一个字符串进行索引,该字符串第索引,该字符串第3个索引为个索引为i字符字符 fourth=raw_input(Year:)3#可以对输入的字可以对输入的字符串进行索引,本例表示想取输入的字符串索引为符串进行索引,本例表示想取输入的字符串索引为3的信息的信息Year:2014 fourth#4 greeting=Hello greeting2#l 为输出结果,下同为输出结果,下同 greeting-1#o stringtesting3#可以对任何一个字符串进行可以对任何一个字符串进行索引,该字符串第索引,该字符串第3个索引为个索引为i字符字符 fourth=ra
8、w_input(Year:)3#可以对输入的字可以对输入的字符串进行索引,本例表示想取输入的字符串索引为符串进行索引,本例表示想取输入的字符串索引为3的信息的信息Year:2014 fourth#42、分片、分片 索引用来对单个元素进行访问,用分片可以对索引用来对单个元素进行访问,用分片可以对一定范围内的元素进行访问,分片通过冒号相隔的一定范围内的元素进行访问,分片通过冒号相隔的两个索引来实现。分片操作的实现需要提供两个索两个索引来实现。分片操作的实现需要提供两个索引作为边界,引作为边界,第一个索引的元素是包含在分片内的第一个索引的元素是包含在分片内的,第二个则不包含在分片内。,第二个则不包含
9、在分片内。number=1,2,3,4,5,6,7,8,9,10 number2:4#3,4#取索引为第二和第三的元素取索引为第二和第三的元素 number-4:-1#7,8,9#负数表明是从右开始计数负数表明是从右开始计数 number4:-4#5,6#正负数同出现来框定分片范围正负数同出现来框定分片范围 number-4:#7,8,9,10#把第二个索引置空,表明包把第二个索引置空,表明包括到序列结尾的元素括到序列结尾的元素 number:3#1,2,3#同上,把第一个索引置空表明包含同上,把第一个索引置空表明包含序列开始的元素序列开始的元素 number0:10:1#在分片的时候,默认步
10、长为在分片的时候,默认步长为1,这里指定步长为,这里指定步长为11,2,3,4,5,6,7,8,9,10 number0:10:2#这里指定步长为这里指定步长为2,这样就会跳过某些序列元素,这样就会跳过某些序列元素1,3,5,7,9 number10:0:-1#步长也可以是负数,但是第一个索引一定要大步长也可以是负数,但是第一个索引一定要大于第二个索引于第二个索引10,9,8,7,6,5,4,3,2#这里这里number10:0:-1等价于等价于number9:0:-1 number10:0:-2#10,8,6,4,2#这里这里number10:0:-2等等价于价于number9:0:-2 对
11、于一个正数步长,对于一个正数步长,Python会从序列的会从序列的头部开始向右提取元素,直到最后一个元素头部开始向右提取元素,直到最后一个元素,而对于负数步长,则是从序列的尾部开始,而对于负数步长,则是从序列的尾部开始向左提取元素,直到第一个元素。向左提取元素,直到第一个元素。3、序列相加、序列相加 1,2,3+4,5,6#1,2,3,4,5,6#列表类型序列相加列表类型序列相加 Hello+World!#Hello World!#字符串类型序列相加字符串类型序列相加(1,2,3)+(4,5,6)#(1,2,3,4,5,6)#元组类型序列相加元组类型序列相加 1,2,3+Hello#出错了出错
12、了Traceback(most recent call last):File,line 1,in TypeError:can only concatenate list(not str)to list 最后一个例子,试图列表和字符串进行相加,但是出错最后一个例子,试图列表和字符串进行相加,但是出错了,虽然他们都是序列,但是是不同数据类型,是不能相加了,虽然他们都是序列,但是是不同数据类型,是不能相加的。的。4、乘法、乘法 用数字用数字x剩以一个序列会生成新的序列,而在新的序列剩以一个序列会生成新的序列,而在新的序列中,序列将会被重复中,序列将会被重复x次。次。Python*4#PythonPy
13、thonPythonPython None*4#None为为Python的内建值,这里创建长度的内建值,这里创建长度为为4的元素空间,但是什么元素也不包含:的元素空间,但是什么元素也不包含:None,None,None,None5、成员资格、成员资格 可以使用可以使用in运算符来检查一个值是否在运算符来检查一个值是否在序列中,如果在其中,就返回序列中,如果在其中,就返回Ture,如果不,如果不在,就返回在,就返回False。permission=rw r in permission#True x in permission#False6、长度、最小值和最大值、长度、最小值和最大值 内建函数内建
14、函数len、min和和max分别返回序列所分别返回序列所包含的元素的数量、序列中的最小元素和序包含的元素的数量、序列中的最小元素和序列中的最大元素。列中的最大元素。number=2,3,4,5,6,7,8,9,10 len(number)#9 min(number)#2 max(number)#10 min(4,3,5)#3#函数的参数不用一定是序函数的参数不用一定是序列,也可以是多个数字列,也可以是多个数字 列表(列表(List)是最常用的是最常用的Python数据类型,列表数据类型,列表可以使用所有适用于序列的标准操作。列表的各个可以使用所有适用于序列的标准操作。列表的各个元素(或数据项)
15、通过逗号分隔写在方括号内,列元素(或数据项)通过逗号分隔写在方括号内,列表的元素不需要具有相同的类型,其中列表元素本表的元素不需要具有相同的类型,其中列表元素本身也可以是列表。身也可以是列表。创建一个列表,只要把逗号分隔的不同元素使创建一个列表,只要把逗号分隔的不同元素使用方括号括起来即可。如下所示:用方括号括起来即可。如下所示:name=Clef,luo name0#Clef test=name,10#列表元素本身也是一个列表列表元素本身也是一个列表 test#Clef,luo,104.2.1 列表操作符与内置函数列表操作符与内置函数4.2.2 列表的基本操作列表的基本操作4.2.3 列表方
16、法列表方法 对列表可使用对列表可使用+和和*的操作符。的操作符。+号用于组合号用于组合列表,列表,*号用于重复列表。号用于重复列表。对列表的函数有:对列表的函数有:1)cmp(list1,list2)比较两个列表的元素(仅比较两个列表的元素(仅Python 2.x可可用);用);2)len(list)列表元素个数;列表元素个数;3)max(list)返回列表元素最大值;返回列表元素最大值;4)min(list)返回列表元素最小值;返回列表元素最小值;5)list(seq)将元组转换为列表。其中,将元组转换为列表。其中,len、min和和max 前面已统一介绍。前面已统一介绍。列表元素使用下标索
17、引来访问,索引号从列表元素使用下标索引来访问,索引号从0开始开始,还可以通过,还可以通过(:)分隔的索引段来分片截取列表中连分隔的索引段来分片截取列表中连续的一段元素。续的一段元素。1)更新列表:元素赋值)更新列表:元素赋值 2)删除元素:使用)删除元素:使用del语句语句 3)分片赋值)分片赋值列表方法的调用规则:列表对象列表方法的调用规则:列表对象.方法方法(参数参数)1)append方法方法list.append(obj):用于在列表末尾追加新的对象。:用于在列表末尾追加新的对象。numbers=1,2,3 numbers.append(4)#直接追加新的列表元素直接追加新的列表元素 n
18、umbers#1,2,3,42)count方法方法list.count(obj):统计某个元素在列表中出现的次数。:统计某个元素在列表中出现的次数。numbers=1,2,1,2,3,4,2 numbers.count(2)#统计列表元素统计列表元素2出现的次数,这里为出现的次数,这里为33)extend方法方法 list.extend(seq):可以在列表的末尾一次性追加另一个:可以在列表的末尾一次性追加另一个序列中的多个值,这个方法很像序列相加,但是,序列中的多个值,这个方法很像序列相加,但是,extend方方法会改变列表的原始值,而序列相加不会。法会改变列表的原始值,而序列相加不会。a=
19、1,2,3 b=4,5,6 a.extend(b)a#1,2,3,4,5,67)remove方法方法list.remove(obj):用于移除列表中某个值的第一个:用于移除列表中某个值的第一个匹配项。匹配项。x=1,2,3,2,4,5 x.remove(2)#只移除了列表中的第一个匹配到只移除了列表中的第一个匹配到2的元素的元素 x#1,3,2,4,58)reverse方法方法list.reverse():将列表中元素顺序全部反向。:将列表中元素顺序全部反向。x=1,2,3,4,5 x.reverse()x#5,4,3,2,110)高级排序)高级排序 如果不想按照如果不想按照sort方法默认的
20、方式进行排序,方法默认的方式进行排序,可以通过可以通过compare(x,y)的形式自定义比较函数,的形式自定义比较函数,compare(x,y)函数会在函数会在xy是返回是返回正数,如果正数,如果x=y时则返回时则返回0,定义好该函数之后,就,定义好该函数之后,就可以提供给可以提供给sort方法作为参数了。同样,方法作为参数了。同样,key、reverse还是可以作为还是可以作为sort方法的参数。方法的参数。11)多维列表)多维列表 Python支持使用多维列表,就是列表的数据元素本支持使用多维列表,就是列表的数据元素本身也是列表。身也是列表。可以像创建普通列表一样创建多维列表,例如:可以
21、像创建普通列表一样创建多维列表,例如:list33=1,2,3,4,5,6,7,8,9print(list33)#输出:输出:1,2,3,4,5,6,7,8,9 为了引用多维列表中的一个数据值,需要两个索为了引用多维列表中的一个数据值,需要两个索引号,一个是外层列表的,另外一个是元素列表的。引号,一个是外层列表的,另外一个是元素列表的。【例例4-1】随机产生随机产生20个个100以内的整数,以内的整数,存放在数组(即列表)中,找出其中的最大存放在数组(即列表)中,找出其中的最大数并指出其所在的位置。数并指出其所在的位置。分析:利用分析:利用random.randint(0,100)随机产随机产
22、生生100以内的大于等于以内的大于等于0的整数。本题先用传的整数。本题先用传统数组元素比较查找的方法实现;再用列表统数组元素比较查找的方法实现;再用列表内置函数来非常便捷实现本例功能。内置函数来非常便捷实现本例功能。元组(元组(Tuple)与列表一样,也是一种序)与列表一样,也是一种序列,唯一的不同就是元组不能修改。创建元列,唯一的不同就是元组不能修改。创建元组很简单,用逗号隔开一些值,就自动创建组很简单,用逗号隔开一些值,就自动创建了元组,元组大部分的时候是通过圆括号括了元组,元组大部分的时候是通过圆括号括起来的。元组的基本操作可以参考:起来的。元组的基本操作可以参考:Python序列的通用
23、操作。序列的通用操作。1,2,3#(1,2,3)(4,5,6)#(4,5,6)4.3.1 元组创建与访问元组创建与访问4.3.2 元组操作符与函数元组操作符与函数4.3.3 元组的基本操作元组的基本操作 元组创建很简单,只需要在括号中添加元素,并元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。例如:使用逗号隔开即可。例如:tup1=(physics,chemistry,1997,2000);tup2=(1,2,3,4,5);tup3=a,b,c,d;创建空元组,创建空元组,tup1=();#空元组,不包含任何元空元组,不包含任何元素元组中只包含一个元素时,需要在元素后面添加逗素元组
24、中只包含一个元素时,需要在元素后面添加逗号,号,tup1=(50,);元组与列表、字符串等都类似,下标索引从元组与列表、字符串等都类似,下标索引从0开始开始,可以进行截取、组合等操作。,可以进行截取、组合等操作。对元组与列表一样,可使用对元组与列表一样,可使用+和和*的操作符。的操作符。+号用于组合元组,号用于组合元组,*号用于重复元组。对元组操作号用于重复元组。对元组操作的 函 数 基 本 可 以 参 照 操 作 列 表 的 函 数,有的 函 数 基 本 可 以 参 照 操 作 列 表 的 函 数,有cmp(tuple1,tuple2)、len(tuple)、max(tuple)、min(t
25、uple)、tuple(seq)等,唯一不同的是把等,唯一不同的是把list(seq)改为改为tuple(seq),tuple(seq)函数是把序列转换为元组函数是把序列转换为元组,其它函数的含义同对列表的函数。,其它函数的含义同对列表的函数。1)修改元组)修改元组 元组中的元素值是不允许修改的,但我们可以对元元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:组进行连接组合,如下实例:tup1,tup2=(12,34.56),(abc,xyz);#tup10=100;#本修改元组元素的操作是非法的本修改元组元素的操作是非法的 tup3=tup1+tup2;#创建一个新的元组
展开阅读全文