python课件第4章 Python的四种典型序列结构PPT课件内容

上传人:b****i 文档编号:5527247 上传时间:2023-11-21 格式:PPTX 页数:48 大小:439.50KB
返回 下载 相关 举报
python课件第4章 Python的四种典型序列结构PPT课件内容_第1页
第1页 / 共48页
python课件第4章 Python的四种典型序列结构PPT课件内容_第2页
第2页 / 共48页
python课件第4章 Python的四种典型序列结构PPT课件内容_第3页
第3页 / 共48页
python课件第4章 Python的四种典型序列结构PPT课件内容_第4页
第4页 / 共48页
python课件第4章 Python的四种典型序列结构PPT课件内容_第5页
第5页 / 共48页
点击查看更多>>
文档描述
序列、列表序列、列表 元组、字典元组、字典 集合集合 容器中的公共操作容器中的公共操作 推到式与生成器推导式推到式与生成器推导式第4章 Python的四种典型序列结构参考书目Python 程序设计目录 序列序列 列表列表 元组元组 字典字典 集合集合 容器中的公共操作容器中的公共操作 推到式与生成器推导式推到式与生成器推导式这里说明图片内容 序列 序列概述:序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称为索引或位置。通过该索引可以取出相应的值。例如,我们可以把一家酒店看作一个序列,那么酒店里的每个房间都可以看作是这个序列的元素。而房间号就相当于索引,可以通过房间号找到对应的房间。序列1 索引Python的索引可以是负数:元素元素1 1元素元素2 2元素元素3 3元素元素4 4元素元素元素元素n n0 01 12 23 3 n-1n-1索引:列中的每一个元素都有一个编号,也称为索引。这个索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第2个元素,依此类推:元素元素1 1元素元素2 2元素元素3 3元素元素4 4元素元素元素元素n-1n-1-n-n-(n-1)-(n-1)-(n-2)-(n-2)-(n-3)-(n-3)-2-2序列切片:切片是指对操作的对象截取其中一部分的操作,即从容器中取出相应的元素重新组成一个容器。语法格式如下:2 切片 sname:表示序列的名称。startstart:表示切片的开始位置(包括该位置),如果不指定则默认为0。endend:表示切片的截止位置(不包括该位置),如果不指定则默认为序列的长度。stepstep:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可snamestart:end:step序列 切片选取的区间属于左闭右开型,即从“起始”位开始,到“结束”位的前一位结束(不包括结束位本身)。根据步长的取值,可以分为如下两种情况:2 切片(1)步长大于0:按照从左到右的顺序,每隔“步长-1”(索引间的差值仍为步长值)个字符进行一次截取。(2)步长小于0:按照从右到左的顺序,每隔“步长-1”(索引间的差值仍为步长值)个字符进行一次截取。序列序列相加:在Python中,支持两种相同类型的序列相加操作。即将两个序列进行连接,使用加(+)运算符实现。3序列相加c1=fudan,sjtu,nju,zju,ustcc2=pku,tsinghua,fudan,xjtuprint(c1+c2)运行结果:fudan,sjtu,nju,zju,ustc,pku,tsinghua,fudan,xjtu从上面的输出结果中,可以看出两个列表被合为一个列表了。【例】将如下两个列表相加。序列序列乘法:在Python中,使用数字n乘以一个序列会生成新的序列。新序列的内容为原来序列被重复n次的结果。4序列乘法love=我是爱你的print(love*3)运行结果:我是爱你的,我是爱你的,我是爱你的【例】将一个序列乘以3生成一个新的序列并输出,达到“重要事情说三遍”的效果。序列检查某个元素是否是序列的成员:在Python中,可以使用in关键字检查某个元素是否包含在该序列中。语法格式如下:5.检查某个元素是否是序列的成员c=pku,tsinghua,fudan,sjtu,nju,zju,ustc,hit,xjtuprint(hit in c)运行结果:True【例】要检查名称为c的序列中,是否包含元素“hit”。序列 计算序列的长度、最大值和最小值:在Python中,提供了内置函数计算序列的长度、最大值和最小值。使用len()函数计算序列的长度 使用max()函数返回序列中的最大元素 使用min()函数返回序列中的最小元素6 计算序列的长度、最大值和最小值year=1898,1911,1905,1896,1902,1897,1958,1920,1896print(在year序列的长度:,len(year),,其中,最大值为:,max(year),最小值为:,min(year)运行结果:在year序列的长度:9,其中,最大值为:1958 最小值为:1896【例】定义一个包括9个元素的列表,并通过len()函数计算列表的长度,最大元素、最小元素。序列除了上面介绍的3个内置函数,Python还提供了如表所示的内置函数。6 计算序列的长度、最大值和最小值内置函数内置函数功能功能list()将序列转换为列表str()将序列转换为字符串sum()计算元素和sorted()对元素进行排序reversed()反向序列中的元素enumerate()将序列组合为一个索引序列,多用在for循环中zip()返回几个列表压缩成的新列表列表 列表概述:Python中的列表是由一系列按特定顺序排列的元素组成的。它是Python中内置的可变序列。在形式上,列表的所有元素都放在一对中括号“”中,两个相邻元素间使用逗号“,”分隔。在内容上,可以将整数、实数、字符串、列表、元组等任何类型的内容放入到列表中列表1 列表的创建与删除.列表的创建与删除:创建列表时,也可以使用赋值运算符“=”直接将一个列表赋值给变量,具体的语法格式如下:listname=元素1,元素2,元素3,元素n创建数值列表:在Python中,数值列表很常用。例如,在考试系统中记录学生的成绩,或者在游戏中记录每个角色的位置,各个玩家的得分情况等都可应用数值列表。创建空列表:例如,要创建一个名称为emptylist的空列表,可以使用的代码:emptylist=删除列表:对于已经创建的列表,不再使用时,可以使用del语句将其删除。语法格式如下:del listname03010402列表2 列表元素的访问与遍历1采用下标法访问列表元素:在Python中,如果想将列表的内容输出也比较简单,可以直接使用print()函数。2遍历列表:列表的循环遍历是指依次打印列表中的各个数据。在Python中遍历列表的方法有多种,下面介绍5种常用的方法。直接使用for循环实现Q1使用for循环和enumerate()函数实现Q2利用while语句输出列表的各个元素Q3利用索引遍历Q4利用索引遍历Q5列表3 列表元素的常用操作 添加元素的方法 append()方法用于在列表末尾添加新的对象。语法格式:listname.append(obj)extend()方法用于在列表末尾一次性追加另一个序列中的多个值,如果数据是一个序列,则将这个序列的数据逐一添加到列表。extend()方法语法:list.extend(seq)insert()方法用于将指定对象插入列表的指定位置。insert()方法语法:list.insert(index,obj)列表3 列表元素的常用操作 删除元素pop()方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。clear()方法用于清空列表,类似于 del a:。clear()方法语法:list.clear()根据索引删除元素删除列表中的指定元素和删除列表类似,也可以使用del语句实现。根据元素值删除元素方法如果想要删除一个不确定其位置的元素(即根据元素值删除),可以使用列表对象的remove()方法实现。列表3 列表元素的常用操作 修改元素方法修改指定下标数据修改列表中的元素只需要通过索引获取该元素,然后再为其重新赋值即可。reverse()方法 用于反向列表中元素。reverse()方法语法:list.reverse()copy()方法 用于复制列表,类似于 a:。列表3 列表元素的常用操作.查找元素方法len()方法 len()方法功能是返回列表元素个数。用in判断是否存在 通常可以用in判断指定数据在某个列表序列,如果在返回True,否则返回False。index()方法 用于从列表中找出某个值第一个匹配项的索引位置,即获取指定元素首次出现的下标。count()方法 用于统计某个元素在列表中出现的次数。列表4列表元素的统计与排序列表元素的统计:在Python中,提供了sum()函数用于统计数值列表中各元素的和。列表元素的排序:Python中提供了两种常用的对列表进行排序的法。使用列表对象的sort()方法实现、使用内置的sorted()函数实现。列表5列表的嵌套嵌套列表就是列表中包含列表。嵌套列表可以模拟出现实中的表格、矩阵、2D游戏的地图、棋盘等。【例】通过对列表的嵌套应用,实现34矩阵的转置行和列。matrix=1,2,3,4,5,6,7,8,9,10,11,12transposed=for i in range(4):midden=for row in matrix:midden.append(rowi)transposed.append(midden)print(transposed)运行结果:1,5,9,2,6,10,3,7,11,4,8,12元组 元组概述:元组(tuple)是Python中另一种内置的存储有序数据的结构。元组与列表类似,也是由一系列按特定顺序排列的元素组成,可存储不同类型的数据,如字符串、数字甚至元组。然而,元组是不可改变的,创建后不能再做任何修改操作。元组1元组的创建与删除1.1.使用赋值运算符直接创建元组使用赋值运算符直接创建元组:tuplename=(元素1,元素2,元素3,.,元素n)tuplename表示元组的名称,可以是任何符合Python命名规则的标识符2.2.创建空元组创建空元组:在Python中,也可以创建空元组,空元组可以应用在为函数传递一个空值或者返回空值时3.3.创建数值元组创建数值元组:在Python中,可以使用tuple()函数直接将range()函数循环出来的结果转换为数值元组。语法格式如下:t tuple(data)uple(data)4.4.删除元组删除元组5.5.整体修改元组元素整体修改元组元素1元组的创建与删除4.4.删除元组删除元组:元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。对于已经创建的元组,不再使用时,可以使用deldel语句语句将其删除。5.5.整体修改元组元素整体修改元组元素:元组是不可变序列,所以不能对它的单个元素值进行修改。但是元组也不是完全不能修改,可以对元组进行重新赋值。元组1元组的创建与删除4.4.删除元组删除元组:元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。对于已经创建的元组,不再使用时,可以使用del语句将其删除。5.5.整体修改元组元素整体修改元组元素:元组是不可变序列,所以不能对它的单个元素值进行修改。但是元组也不是完全不能修改,可以对元组进行重新赋值。元组2元组的常见操作03040102len(tup):返回元组中元素的个数。max(tup):返回元组中元素最大的值。min(tup):返回元组中元素最小的值。tuple(seq):将列表转化为元组。元组数据不支持修改,只支持查找。接下来,介绍元组的查找操作。对元组进行查找操作的内建函数包括以下四种元组的常见操作元组3元组与列表的区别与相互转换元组1.元组与列表的区别(1)表属于可变序列,它的元素可以随时修改或者删除:元组属于不可表属于可变序列,它的元素可以随时修改或者删除:元组属于不可变序列,其中的元素不可以修改,除非整体替换。变序列,其中的元素不可以修改,除非整体替换。(2 2)列表可以使用)列表可以使用append()append()、extend()extend()、insert()insert()、remove()remove()和和pop()pop()等方法实现添加和修改列表元素:而元组则没有这几个方法,因为不能向等方法实现添加和修改列表元素:而元组则没有这几个方法,因为不能向元组中添加和修改元素,同样也不能删除元素。元组中添加和修改元素,同样也不能删除元素。(3 3)列表可以使用切片访问和修改列表中的元素;元组也支持切片,但)列表可以使用切片访问和修改列表中的元素;元组也支持切片,但是它只支持通过切片访问元组中的元素,不支持修改。是它只支持通过切片访问元组中的元素,不支持修改。(4 4)元组比列表的访问和处理速度快。所以如果只需要对其中的元素进)元组比列表的访问和处理速度快。所以如果只需要对其中的元素进行访问,而不进行任何修改,建议使用元组。行访问,而不进行任何修改,建议使用元组。(5 5)列表不能作为字典的键,则元组则可以。)列表不能作为字典的键,则元组则可以。3元组与列表的区别与相互转换元组元组与列表可以互相转换元组与列表可以互相转换:tuple()函数接收一个列表,可返回一个包含相同元素的元组函数接收一个列表,可返回一个包含相同元素的元组 list()函数接收一个元组并返回一个列表。函数接收一个元组并返回一个列表。从元组与列表的性质来看,从元组与列表的性质来看,tuple()相当于冻结一个列表,而相当于冻结一个列表,而list()相当于解冻一个元组。相当于解冻一个元组。字典 元组概述:在许多应用中需要利用关键词查找对应信息,例如,通过学号来检索某学生的信息。其中,通过学号查找所对应学生的信息的方式称为“映射”。Python语言的字典(dictionary)类型就是一种映射。其他编程语言中也提供类似的结构,例如,哈希(Hash)、关联数组等。1字典的创建字典字典包含了一个索引的集合,称为键(key)和值(value)的集合。一个键对应一个值。通过给定的“键-值对”创建字典语法如下:dictionary=dict(key1=value1,key2=value2,.,keyn=valuen).通过映像函数创建字典语法格式:dictionary=dict(zip(list1,list2)参数说明如下:dictionary:表示字典名称。字典的创建2字典元素的访问与遍历字典字典元素的遍历字典是以“键-值对”的形式存储数据的,所以就可能需要对这些“键-值对”进行获取。Python提供了遍历字典的方法,通过遍历可以获取字典中的全部“键-值对”。字典元素的访问 可直接使用print()函数输出字典的内容,如print(dictname)。但是,在使用字典时,很少直接输出它的内容。一般需要根据指定的键得到相应的结果。字典元素的访问与遍历3字典元素的常见操作字典1.字典元素的增加由于字典是可变序列,所以可以随时在其中增加“键-值对”,这和列表类似。向字典中添加元素的语法格式如下:dictionarykey=value dictionary:表示字典名称;key:表示要增加元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组;value:表示元素的值,可以是任何数据类型,不是必须唯一。3字典元素的访问与遍历字典 字典元素的删除del()/del:删除字典或删除字典中指定键值对clear():清空字典pop():获取指定 key 对应的 value,并删除这个 key-value 对4字典元素的查找字典如果当前查找的key存在,则返回对应的值;否则则报错。字典元素的查找,可以通过如下两种方式查找:1)通过键值方式。前边已经讲述。2)通过get()、keys()、values()以及items()函数方式查找。两个重要的点需要记住:1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。2)字典的键值必须不可变,可以用数,字符串或元组充当。由于用列表的值是变化的,就不能作为键。集合 集合概述:Python中的集合(set)与数学中的集合概念类似,也是用于保存不重复的元素。它有可变集合(set)和不可变集合(frozenset)两种。在形式上,集合的所有元素都放在一对大括号中,两个相邻元素间使用逗号“,”分 隔。集合最好的应用就是去重,因为集合中的每个元素都是唯一的。1集合的创建集合在Python中提供了两种创建集合的方法,一种是直接使用“”创建;另一种是通过set()函数将列表、元组等可迭代对象转换为集合。一般推荐使用第二种方法。使用set()函数创建集合在Python中,可以使用set()函数将列表、元组等其他可迭代对象转换为集合。set()函数的语法格式如下:setname=set(iteration)直接使用创建集合在Python中,创建set集合也可以像列表、元组和字典一样,直接将集合赋值给变量,从而实现创 建集合,即直接使用大括号“”创建。集合的创建2集合元素的常见操作集合03040102向集合中添加元素:add()方法。update()方法是向集合追加的数据是序列从集合中删除元素:del命令删除整个集合,集合的discard()方法、pop()方法或者remove()方法删除一个元素,或者使用集合对象的clear()方法清空集合,即使其变为空集合。查找元素在集合中用 in判断数据在集合序列;not in:判断数据不在集合序列。tuple(seq):将列表转化为元组。集合是可变序列,所以集合是可变序列,所以在创建集合后,还可以对在创建集合后,还可以对其添加或者删除元素。其添加或者删除元素。集合元素的常见操作2集合的交集、并集和差集数学运算集合集合最常用的操作就是进行交集、并集、差集和对称差集运算。进行交集运算时使用“&”符号;进行并集运算时使用“|”符号;进行差集运算时使用“-”符号。集合是可修改的数据类型,但集合中的元素必须是不可修改的。换句话说,集合中元素只能是数值、字符串、元组之类。容器中的公共操作 容器中的公共操作概述:容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in,not in关键字判断元素是否包含在容器中。容器是一种可以包含其他类型对象(如列表、元组、字典等)作为元素的对象。容器仅仅只是用来存放数据的,我们平常看到的 l=1,2,3,4等等,好像我们可以直接从列表这个容器中取出元素,但事实上容器并不提供这种能力,而是可迭代对象赋予了容器这种能力。1运算符操作容器中的公共操作在上述序列中,常常都会用到+、*、in和not in,接下来对各个运算符进行解释。运算符操作“+”运算符“+”运算符,主要用于字符串、列表、元组的合并操作。list()方法list()方法作用:将某个序列转换成列表.set()方法set()方法作用:将某个序列转换成集合2 公共方法容器中的公共操作在序列方法中,常用的公共方法有len()方法、del 或 del()方法、max()和min()方法、range(start,end,step)和.enumerate()方法。公共方法len()方法len()方法可以统计字符串、列表、元组、字典容器中元素个数。.del 或 del()方法del 或 del()方法删除字符串、列表部分或全部元素。max()和min()方法max()和min()方法分别返回容器中元素最大值和最小值。3 容器类型转换容器中的公共操作在上述的各类容器中,可以通过tuple()、list()和set()进行相互转换。容器类型转换tuple()方法 tuple()方法作用:将某个序列转换成元组.del 或 del()方法del 或 del()方法删除字符串、列表部分或全部元素。max()和min()方法max()和min()方法分别返回容器中元素最大值和最小值。推导式与生成器推导式 推导式与生成器推导式概述:推导式(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。Python中共有三种推导,在Python2和3中都有支持:列表(list)推导式、字典(dict)推导式、集合(set)推导式。推导式的最大优势是化简代码,主要适合于创建或控制有规律的序列1 列表推导式推导式与生成器推导式使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。列表推导式通常有以下几种常用的语法格式。列表推导式从列表中选择符合条件的元素组成新的列表多个for实现列表推导式生成指定范围的数值列表根据列表生成指定需求的列表2字典推导式推导式与生成器推导式字典推导式的基础模板:字典推导式的基础模板:key:value for key,value in existing_data_structure 容器类型转换利用字典推导式创建一个字典将两个列表合并为一个字典提取字典中目标数据3集合推导式推导式与生成器推导式集合推导式跟列表推导式是相似的,唯一的区别就是它使用的是大括号。集合推导式基础模板:expr for value in collection if condition【例】将名字去重并把名字的格式统一为首字母大写。names=Bob,JOHN,alice,bob,ALICE,James,Bob,JAMES,jAMeS new_names=n0.upper()+n1:.lower()for n in namesprint(new_names)运行结果:Bob,James,John,Alice4元组的生成器推导式推导式与生成器推导式元组一旦创建,没有任何方法可以修改元组中的元素,只能使用del命令删除整个元组。生成器推导式的结果是一个生成器对象,而不是列表,也不是元组。使用生成器对象的元素时,可以根据需要将其转化为列表或元组。使用生成器对象的元素时,可以根据需要将其转化为列表或元组。可以使用可以使用_next_()_next_()或者内置函数访问生成器对象,但不管使用何或者内置函数访问生成器对象,但不管使用何种方法访问其元素,当所有元素访问结束以后,如果需要重新访问种方法访问其元素,当所有元素访问结束以后,如果需要重新访问其中的元素,必须重新创建该生成器对象。其中的元素,必须重新创建该生成器对象。思考与练习1.输入一个字符串。请完成如下任务:(1)打印第一字符;(2)打印最后一个字符;(3)如果是奇数,打印中间的字符串(len(字符串));(4)打印倒数3个字符;(5)倒叙打印字符串。2.输入一个整数,根据整数打印一个矩形。3.判断字符串是否为回文,比如“上海自来水来自上海”。提示:字符串翻转。4.定义一个列表,然后正向、隔2个元素,逆序遍历各元素。5.查找列表中值最大的元素。6.查找列表中值最小的元素。思考与练习7.输入入学生姓名。要求:姓名不能重复;如果录入esc,则停止录入,打印每个学生姓名。8.利用列表,实现字符串的拼接,不采用“+”连接字符串形成新的对象。9.连续输入字符,形成新的字符串后输出。遇到字符“q”后退出。10.输入学生成绩,计算总分,最高分,最低分。对列表(1,58,98,12,68,32)部分范围的元素进行排序。11.创建新列表。要求:将原列表的每个元素中的元素平方。12.创建新列表,如果元素是偶数,则将每个元素的平方存入新列表。13.利用元组计算月日之前有多少天。14.利用字典,判断季度与月份的对应关系,并输出(即输入季度,然后输出对应有哪些月份)。15.利用字典实现输入两个数字,并输入加减乘除运算符号,输出运算结果。若输入其他符号,则退出程序。
展开阅读全文
相关文档
相关搜索

最近上传DOC

最近上传PPT

最近上传RAR


当前位置:首页 > IT大数据 > 计算机


黔ICP备20002965号-1  在线客服QQ:365045600

Copyright © 2020-2023 www.xinwenku.com All rights reserved 新文库网 版权所有