Python程序设计(含视频分析) 课件 第5章 结构化类型_第1页
Python程序设计(含视频分析) 课件 第5章 结构化类型_第2页
Python程序设计(含视频分析) 课件 第5章 结构化类型_第3页
Python程序设计(含视频分析) 课件 第5章 结构化类型_第4页
Python程序设计(含视频分析) 课件 第5章 结构化类型_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

主讲教师:单

位:Python程序设计方法第5章结构化类型第5章结构化类型5.1字符串5.2列表5.3元组5.4字典5.5集合5.6简单算法第5章结构化类型5.1字符串5.1字符串5.1.1字符串字面量5.1.2字符串的基本操作5.1.3字符串方法5.1.4字符串应用5.1字符串字符串是一种序列,是一个有序的字符集合,用来存储和表示基于文本和字节的信息。大部分标准序列操作如索引、分片、乘法、成员资格检查、求长度、求最小值和最大值等都适用于字符串。字符串是str类的对象,是不可变对象,因此所有改变字符串值的操作如元素赋值和分片赋值都是非法的。5.1.1字符串字面量Python允许字符串包括在单引号或双引号中,也允许在三个引号(单引号或双引号)中包括多行字符串字面量。采用不同的引号可以让另外一种引号被包含在其中。可以使用反斜杠来引入特殊的字符编码,或者称为转义序列。以字母“r”开头表示原始字符串字面量。如r"c:\new\test.py"表示c:\new\test.py5.1.2字符串的基本操作1.创建字符串可以使用str类的构造函数或直接使用字符串值创建字符串,例如:创建一个空字符串s1=str()或者s1=""创建一个内容为"Welcome"的字符串s2=str("Welcome")或者s2="Welcome"5.1.2字符串的基本操作1.创建字符串一个字符串对象具有不可变性,一旦创建了一个字符串对象出来,就不能在原位置改变其内容。具有相同内容的字符串对象指向同一个字符串对象。例如:s1=""s2="Welcome"s3="Welcome"s4="Hello"则s2和s3指向同一个对象5.1.2字符串的基本操作2.索引字符串是字符的有序集合,因此可以通过位置访问他们的元素。在Python中,字符串中的字符是通过索引来获取的,可以使用下标运算符[]访问字符串中的一个字符。假设s=“HelloWorld!",s中每个字符对应的位置及其索引如下所示:【程序5-1】字符串变换从键盘输入一串字符,将大写字母变为小写字母,小写字母变为大写字母,其他字符不变。输出变换后的字符串。s=input("请输入字符串:")news=''foriinrange(0,len(s)):offset=ord('a')-ord('A')if'a'<=s[i]<='z':news=news+chr(ord(s[i])-offset)elif'A'<=s[i]<='Z':news=news+chr(ord(s[i])+offset)else:news=news+s[i]print("转换后的字符串为:"+news)【程序5-2】变换输出字符串输入一个字符串,头尾间隔交错输出。s=input("请输入字符串:")print("转换后的字符串为:",end="")foriinrange(0,len(s)//2):print(s[i]+s[-(i+1)],end="")iflen(s)%2==0:print()else:print(s[i+1])5.1.2字符串的基本操作3.分片s为字符串,分片运算符s[start:end]返回字符串s从下标start到end-1的一个子串,start省略,默认起始下标为0,end省略,默认结束下标是最后一个下标,start和end也都可以使用负数。也可以使用加步长的分片操作,s[start:end:step]表示从下标start开始到下标end-1为止,每隔step个元素索引一次例如:s="WelcometoPython"操作结果操作结果s[1:4]'elc's[0:-1]'WelcometoPytho's[8:10]'to's[-6:]'Python's[:10]'Welcometo's[-6:-4]'Py's[11:]'Python's[-6:-8]''s[:]'WelcometoPython's[:-5]'WelcometoP's[0:12:2]'Wloet's[::2]'Wloet's[0:len(s)-1:2]'Wloet's[::-1]'nohtyPotemocleW'5.1.2字符串的基本操作4.连接运算符+和重复运算符*连接运算符+可连接两个字符串,重复运算符*连接相同的字符串多次。s1="Welcome"s1*3或者3*s1

结果为'WelcomeWelcomeWelcome's1="Welcome"s2="Python"s3=s1+"to"+s2s3的内容为'WelcometoPython'a=10b=15str(a)+"+"+str(b)+"="+str(a+b)结果为'10+15=25'5.1.2字符串的基本操作5.in和notin运算符可以使用in和notin操作来测试一个字符串是否在另一个字符串中,结果返回True或者False。>>>s="WelcometoPython">>>s1="Python">>>s2="python">>>s3="come">>>s4="Java">>>s1insTrue>>>s2insFalse>>>s3insTrue>>>s4notinsTrue5.1.2字符串的基本操作6.比较运算符可以使用比较运算符>、>=、<=、==、!=对字符串进行比较,Python是通过比较字符串中对应的字符的ASCII码进行比较的。首先从第一个字符开始比较,直至两个字符不同或一个字符串已经结束。例:"abcde">"abc",结果返回True。"bc">"abc",结果返回True。"abc">"Abcd",结果返回True。"123">"ABCDEF",结果返回False。5.1.2字符串的基本操作7.迭代字符串一个字符串是可迭代的。可用for循环遍历字符串。s="Welcome"#输出s中每个字符的ASCII码forxins:

print(ord(x),end="")输出结果:87101108991111091015.1.2字符串的基本操作8.字符串处理函数在Python中有内置的函数对字符串进行处理。假设s="HelloWorld!",字符串的内置函数应用如表5-3所示。5.1.3字符串方法Python中的字符串有很多方法一般格式: mystring.method(arguments)mystring是引用字符串的变量,method是被调用的方法名称,arguments是传递到方法的一个或多个参数。有些方法是测试字符串的具体特性如果条件存在返回True,否则返回Fasle。5.1.3字符串方法5.1.3字符串方法5.1.3字符串方法【程序5-3】恺撒密码恺撒密码是一种加密技术,在该技术中,消息中的每一个字母都由字母表上向后偏移固定数值位置的字母代替。这个“固定数”被称为密钥,它的值从1到25。例如,如果密钥为4,则字母A替换成E、B替换为F、C替换为G,以此类推,而字母表尾部的字符W、X、Y和Z替换为A、B、C和D。#恺撒密码s=input("输入明文:")key=int(input("输入密钥(1-25之间的数字):"))str=''#对输入的明文字符串中的字符逐个进行判断forxins:#如果这个字符是字母则进行转换ifx.isalpha():#如果这个字符是小写字母则返回Trueifx.islower():#获取小写字母‘a'的ASCII码start=ord('a')#如果这个字符串是大写字母则返回Trueelifx.isupper():#获取大写字母‘A'的ASCII码start=ord('A')#将该字符加上密钥数字后转换为字符str=str+chr((ord(x)-start+key)%26+start)else:str=str+xprint(str)【程序5-4】提取文件名有一字符串filename=“hello.py”,表示一个文件的文件名,判断该文件是否是Python文件,如是,则提取文件名。filename="hello.py"iffilename.endswith(".py"):#判断字符串是否以".py"结尾index=filename.find(".py")#获取子串".py"在原字符串中的最低下标fname=filename[:index]#分片获取文件名print("去掉后缀的文件名为:",fname)join()和split()方法join()方法可以将一个字符串列表连接起来成为一个字符串,然后返回该字符串,如:','.join(['cats','rats','bats']),将'cats'、'rats'和'bats'三个字符串之间用“,”进行连接,返回的字符串是'cats,rats,bats'。join()方法针对一个字符串调用,并且需要传入一个列表值,字符串被插入到列表参数中每个字符串的中间,然后返回一个字符串。'-'.join(['2021','10','01'])返回'2021-10-01'split()针对一个字符串调用,返回一个字符串列表,可以传入一个分隔字符串。'2021-10-01'.split('-')返回['2021','10','01']5.1.4字符串应用【程序5-6】回文判断。【程序5-7】密码随机生成器。第5章结构化类型5.2列表5.2列表5.2.1列表简介

5.2.2列表运算5.2.3列表方法5.2.4复制列表5.2.5列表和函数5.2.6二维列表5.2.1列表简介序列[10,20,30,40]为包含4个为整数的元素的列表。序列['crunchyfrog','rambladder','larkvomit']包含3个字符串的列表。序列['spam',2.0,5,[10,20]]包含一个字符串、一个浮点数、一个整数和另一个列表,包含了多种类型的值的列表。5.2.2列表运算列表运算符有:下标运算符列表截取+*n/notin运算符for循环进行遍历比较运算符(>、>=、<、<=、==、!=)5.2.2列表运算1.创建列表可以使用list类的构造方法,也可以使用[]来表示。操作结果list1=list()#创建了一个空列表[]list2=list([2,3,4])#创建了一个元素为2,3,4的列表[2,3,4]list3=(['one','two','three'])#创建了一个元素为字符串的列表['one','two','three']list4=list(range(2,5))#创建了一个元素为2,3,4的列表[2,3,4]list5=list("hello")#创建了一个元素为字符h,e,l,l,o的列表['h','e','l','l','o']list6=[]#创建了一个空列表[]list7=[2,3,4]#创建了一个元素为2,3,4的列表[2,3,4]list8=['red','blue','green']#创建了一个元素为字符串的列表['red','blue','green']5.2.2列表运算1.创建列表可以使用列表推导创建顺序元素的列表。列表推导是通过对序列中的每一项应用一个表达式来构建一个新的列表的方式。一个列表推导由多个方括号组成,方括号内包含后跟一个for子句的表达式,之后是0或多个for或if子句。列表推导可以产生一个由表达式求值结果组成的列表。列表推导语句的语法格式如下:[<表达式>for<项>in<序列/迭代器>if<条件>]语句的计算结果为一个列表,通过<表达式>到<序列/迭代器>的满足<条件>的项来生成新列表的项。5.2.2列表运算使用列表推导创建顺序元素的列表。操作结果list1=[xforxinrange(5)][0,1,2,3,4]list2=[2*xforxinlist1][0,2,4,6,8]list3=[xforxinrange(10)ifx%2==0][0,2,4,6,8]list4=[x+2forxin[yforyinrange(1,10)ify%2!=0]][3,5,7,9,11]list5=[x+yforxin[10,20]foryinlist1][10,11,12,13,14,20,21,22,23,24]res=[c*4forcin'SPAM']['SSSS','PPPP','AAAA','MMMM']list7=[2,3,4][2,3,4]list8=['red','blue','green']['red','blue','green']5.2.2列表运算2.列表常用运算符和操作5.2.2列表运算2.列表常用运算符和操作s=['a','b','c','d','e','f','g','h']print(s[3:5])print(s[1:7])运行结果为:['d','e']['b','c','d','e','f','g']print(s[:])print(s[:5])print(s[:-1])print(s[4:])print(s[-3:])print(s[2:5])print(s[2:-1])print(s[-3:-1])运行结果为:['a','b','c','d','e','f','g','h']['a','b','c','d','e']['a','b','c','d','e','f','g']['e','f','g','h']['f','g','h']['c','d','e']['c','d','e','f','g']['f','g']print("修改前列表s:",s,",长度是:",len(s))s[2:6]=['x','y','z']print("修改后列表s:",s,",长度是:",len(s))s[2:3]=['t']*4print("修改后列表s:",s,",长度是:",len(s))运行结果为:修改前列表s:['a','b','c','d','e','f','g','h'],长度是:8修改后列表s:['a','b','x','y','z','g','h'],长度是:7修改后列表s:['a','b','t','t','t','y','z','g','h'],长度是:95.2.2列表运算3.将字符串分成列表可以使用split()方法将字符串分割成一个列表。s.split(d):使用d作为分隔符拆分字符串s,返回一个字符串列表。如果d被省略,则使用任意空白字符串拆分子字符串。操作结果"apple#banana#cherry#orange".split('#')['apple','banana','cherry','orange']"Hellothere".split('')['Hello','there']items="Welcometopython!"list1=items.split()['Welcome','to','python!']"12:43:39".split(":")['12','43','39']list2="2021/3/14".split("/")['2021','3','14']list3=[eval(x)forxinlist2][2021,3,14]【程序5-8】从键盘输入数个整数,求其和。s=input("输入数据,以空格隔开:")data=[eval(x)forxins.split()]print("和为:",sum(data))运行结果:输入数据,以空格隔开:1031249和为:295.2.3

列表方法列表是list类,创建后就可以使用list类的方法来操作列表。【程序5-9】判断一个句子中每个单词出现的次数。#输入一个句子,每个单词间用空格隔开s=input()slist=s.split()#使用空格分离出每个单词#创建一个空列表,存放字符串中的单词表sset=[]forxinslist:#去掉重复出现的单词ifxnotinsset:sset.append(x)print("原字符串:",s)forxinsset:#使用列表count()方法计算每个单词在单词列表中出现的次数print(x,"在字符串中出现",slist.count(x))运行结果:原字符串:redyellowblueredredblueyellowredred在字符串中出现4yellow在字符串中出现2blue在字符串中出现2red在字符串中出现4red在字符串中出现4blue在字符串中出现2yellow在字符串中出现2red在字符串中出现45.2.3

列表方法append()方法和extend()方法都可以在列表末尾添加元素append()方法可传入任意一个对象,但extend()必须传入一个可迭代对象extend()方法总是循环访问传入的可迭代对象,并逐个把产生的元素添加到列表尾部append()方法会直接把这个传入的迭代对象添加到尾部而不会遍历它extend()方法会添加多个元素,而append()方法只能添加一个元素。

res=['SSSS','PPPP','AAAA','MMMM']res.extend("BBBB")print(res)res=['SSSS','PPPP','AAAA','MMMM']res.append("BBBB")print(res)运行结果:['SSSS','PPPP','AAAA','MMMM','B','B','B','B']['SSSS','PPPP','AAAA','MMMM','BBBB']5.2.4

复制列表为了将一个列表中的数据复制给另一个列表,必须将元素逐个地从源列表复制到目标列表,可以使用多种方法:例:将list1的内容复制给list2方法1:list2=[xforxinlist1]方法2:list2=[]+list1方法3:list2=list1[:]方法4:list2=[]forxinlist1:

list2.append(x)方法5:list2=[]list2.extend(list1)5.2.5

列表和函数列表是一个对象,将列表传递给函数就如同给函数传递一个对象,列表的值在函数内可以改变。在调用函数时,可以传递列表参数。函数也可以返回列表。【程序5-10】产生一个包含20个斐波那契数的列表。【程序5-11】随机产生20个1-20之内的数,去掉列表中重复的数得到一个新列表,按升序输出。【程序5-12】随机生成100个小写字母的序列,然后统计每个字母在该序列中出现的次数。5.2.6

二维列表二维列表即是一个列表中嵌套了另一个列表。如果使用一次索引,会得到一整行,如果使用两次索引,会得到某一行里的其中一项。matrix=[[1,2,3],[4,5,6],[7,8,9]]列表中的每个值都可以用matrix[i][j]来访问,i,j分别是行下标和列下标。【程序5-13】输入一个二维列表,其所有元素都是整数,分别进行以下操作:(1)对所有元素求和(2)求出最大值及其所在位置(3)按行求和(4)按列求和第5章结构化类型5.3元组5.3元组5.3.1元组与列表的区别5.3.2元组使用5.3.3序列的异同和转换5.3元组元组(tuple)是一些元素的不可变有序序列。与字符串的区别是,元组中的元素不一定是字符,其中的单个元素可以是任意类型,且它们彼此之间的类型也可以不同。5.3.1元组与列表的区别元组与列表相似,也是用来存储一个数据的序列,但元组中的元素是固定的,也就是一旦一个元组被创建,元组中的元素就不可变,不能对元组中的元素进行添加、删除、替换或重新排列。元组用圆括号组织一系列项,而列表使用方括号如果在应用中不应该对列表中的内容进行修改,则可以使用元组来防止元素被更改。除了更改元素的操作外,能对列表进行的操作也都适用于元组,但元组比列表的效率更高。字典的键可以使用元组而不能使用列表。一般来说,列表是适用于可能需要进行修改的有序集合,而元组能够处理其他固定关系的情况。5.3.2元组使用可以通过将元素用一括号括起来来创建一个元组,这些元素用逗号分隔。元组可以进行连接、索引和切片等操作,但与列表不同的是,这些操作应用于元组时会返回新的元组。x=(40)#x是一个整数40y=(40,)#y是一个包含一个整数40的元组(1,2)+(3,4)#返回新的元组(1,2,3,4)(1,2)*4#返回新的元组(1,2,1,2,1,2,1,2)T=(1,2,3,4)T[0],T[1:3]#返回(1,(2,3))5.3.2元组使用常见的元组字面量和运算操作结果()空元组T=(0,)单个元素的元组(非表达式)T=(0,'Ni',1.2,3)四个元素的元组T=0,'Ni',1.2,3另一种四个元素的元组(不建议使用)T=('Bob',('dev','mgr'))嵌套元组T=tuple('spam')一个可迭代对象的元素组成的元组('s','p','a','m')T[i]返回元组的第i个元素T[i][j]返回元组第i个元素中的第j个元素T[i:j]返回元组的一个分片len(T)返回元组长度5.3.2元组使用常见的元组字面量和运算操作结果T1+T2返回两个元组连接后的新元组T*n返回一个重复了n次T元组的新元组forxinT:print(x)遍历元组中的所有元素einT如果元组包含e,则返回True,否则返回FalseenotinT如果元组不包含e,则返回True,否则返回False元组有两个专有的方法:若T=(1,2,3,4,3),则T.index(3)返回2,即为数据项3在元组中第一个出现的位置序号。T.count(3)返回2,即为数据项3在元组中出现的次数。5.3.3序列的异同和转换序列类型主要有字符串(str类)、列表(list类)、元组(tuple类)字符串和元组都是不可变类,不能直接在原位置对元素的内容进行修改,引起改变序列内容的操作一般会返回一个新的序列。列表是可变类,允许对列表中的元素内容进行直接修改。5.3.3序列的异同和转换序列之间可以进行相互转换:join()方法可将列表转换为字符串。list和tuple内置函数用来将对象转换成列表,或转换回元组。列表推导也可以用来转换元组。操作结果s='HelloWorld!'list(s)将字符串转换为列表['H','e','l','l','o','','W','o','r','l','d','!']T=("aa","bb","cc","dd")L=list(T)元组转换为列表L['aa','bb','cc','dd']L=['H','e','l','l','o','','W','o','r','l','d','!']"".join(L)将列表连接为字符串'HelloWorld!'L=['aa','bb','cc','dd']T=tuple(L)列表转换为元组T('aa','bb','cc','dd')T=(1,2,3,4,5)L=[x+20forxinT]从元组产生列表,并在过程中将每一项都加上20

L结果为:[21,22,23,24,25]第5章结构化类型5.4字典5.4字典5.4.1创建字典5.4.2字典操作5.4.3常用字典方法5.4字典字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下。字典的类型名是dict,当写成字面量表达式时,字典以一系列“键:值”(key:value)对形式写出,每一对之间用逗号隔开,最外面用大括号括起来。键为不可变类型,可以是数、字符串或元组。字典当中的元素是通过键来存取的。字典中的项是不排序的。monthNumbers={'Jan:':1,'Feb':2,'Mar':3,'Apr':4,'May':5,1:'Jan',2:'Feb',3:'Mar',4:'Apr',5:'May'}monthNumbers[‘Jan’]的值为1,monthNumbers[‘May’]的值为5,monthNumbers[1]的值为’Jan’,monthNumbers[3]的值为’Mar’。5.4.1创建字典字典由键及其相应的值组成,这种键-值对称为项。每个键与其值之间都用冒号(:)分隔,项之间用逗号分隔,而整个字典放在花括号内。空字典用两个花括号{}表示。在字典中,键是唯一的,而值可以重复。可以使用函数dict从其他映射或键-值对序列创建字典。操作结果D={}创建一个空字典D={"name":'Bob',"age":40}创建了一个两个项的字典E={'cto':{"name":'Bob',"age":40}}创建了值为字典的字典D=dict(name='Bob',age=40)创建字典{'name':'Bob','age':40}D=dict([('name','Bob'),('age',40)])创建字典{'name':'Bob','age':40}5.4.2字典操作操作结果D={}空字典D={"name":'Bob',"age":40}有两个元素的字典E={'cto':{"name":'Bob',"age":40}}嵌套D=dict(name='Bob',age=40)其他构造方法:关键字D=dict([('name','Bob'),('age',40)])键值对D=dict(zip(keylist,valslist))拉链式键值对D=dict.fromkeys(['a','b'])键列表D['name']通过键索引E['cto']['age']嵌套索引'age'inD成员关系:键存在测试D.keys()方法:所有键D.value()所有值D.items()所有“键+值”元组5.4.2字典操作操作结果D.copy()复制(顶层的)D.clear()清除(删除所有项目)D.update(D2)通过键合并D.get(key,default)通过键获取,如果不存在默认返回NoneD.pop(key,default)通过键删除,如果不存在返回错误D.setdefault(key,default)通过键获取,如果不存在默认设置为NoneD.popitem()删除/返回所有的(键,值)对len(D)长度(储存的键值对的对数)D[key]=42新增/修改键,删除键delD[key]根据键删除条目list(D.keys())查看字典值D={x:x*2forxinrange(10)}字典推导【程序5-14】用字典保存朋友的生日,使用名字作为键,生日作为值。birthdays={'小明':'Apr12001','小红':'Dec121999','小强':'Mar42001'}monthInChinese={'Jan':'1月','Feb':'2月','Mar':'3月','Apr':'4月','May':'5月','Jun':'6月','Jul':'7月','Aug':'8月','Sep':'9月','Oct':'10月','Nov':'11月','Dec':'12月'}print("你保存了生日的朋友有:")forxinbirthdays:print(x,end="")print()whileTrue:print('输入你想要知道哪天生日的朋友名字:(空格退出)')name=input()ifname=='':breakifnameinbirthdays:birth=birthdays[name].split()print(name+'的生日是'+birth[2]+'年'+monthInChinese[birth[0]]+birth[1]+'日')else:print('我不知道'+name+'的信息。')5.4.3常用字典方法1.keys()、values()和items()方法keys()、values()和items()方法将返回类似列表的值,分别对应于字典的键、值和键-值对。但这些方法返回的值不是真正的列表,它们不能被修改,没有append()方法,这些数据类型分别是dict_keys、dict_values和dict_items,可以用于for循环。可以将这些方法返回的值传递给list()函数得到一个真正的列表。【程序5-15】输入一个星期名的缩写,如'Su','Mo','Tu','We','Th','Fr','Sa',输出对应的英文星期名称和中文星期名称。week=input('请输入某一个星期几的缩写:')days={'Su':('Sunday','星期日'),'Mo':('Monday','星期一'),'Tu':('Tuesday','星期二'),'We':('Wednesday','星期三'),'Th':('Thursday','星期四'),'Fr':('Friday','星期五'),'Sa':('Saturday','星期六')}ifweekindays.keys():print('"'+week+'"是'+days[week][0]+','+days[week][1])else:print("输入有误!")5.4.3常用字典方法2.get()方法get()方法有两个参数,第一个为需要获取其值的键,第二个为当该键不存在时返回的值,缺省为None。方法返回该键对应的值或不存在该键时第二个参数所设置的值。spam={'color':'red','age':42}print('color:'+spam.get('color'))print('age:'+str(spam.get('age')))print('name:'+spam.get('name','你所访问的值不存在'))print('Tel:'+str(spam.get('tel')))5.4.3常用字典方法3.setdefault()方法setfault()方法可以为字典中的某个键设置一个默认值。传递给该方法的第一个参数是要检查的键,第二个参数是当该键不存在时要设置的值。如果该键确实存在,那么setdefault()方法就会返回该键的值。。spam={'color':'red','age':42}spam.setdefault('name','Pooks')print(spam)spam.setdefault('color','blue')print(spam)【程序5-16】统计一个字符串中每个字符出现的次数message="Beautifulisbetter."#创建一个空字典,准备存放每个字符和其个数组成的键值对count={}forcinmessage:#在字典count中若不存在该字符,则其值设置为0count.setdefault(c,0)#每个字符的个数值加1count[c]+=1print(count)【程序5-17】输入学生的学号、姓名以及语文、数学、外语成绩,统计每个学生的总分,并按顺序输出所有学生的学号、姓名和总分。print("请依次输入学号姓名语文成绩数学成绩英语成绩,并以#号结束")student={}s=input().split()whiles[0]!='#':sum=eval(s[2])+eval(s[3])+eval(s[4])#学号为键,值为姓名和总分student[s[0]]=s[1],sums=input().split()print("学号姓名总分")forsinstudent:print(s+','+student[s][0]+','+str(student[s][1]))程序示例【程序5-18】输入学生的姓名和成绩等级,以‘#’结束,等级用字符A,B,C,D,E,F表示。输出每个等级的人数和姓名。【程序5-19】将文本中的符号及某些单词去除后进行单词个数统计。列表、元组、字典列表和元组是一种序列,是任意对象的有序集合,因此可以通过索引对其元素进行访问。字典是一种映射,是任意对象的无序集合,因此只能通过键而不是通过索引对其元素进行访问。列表和字典都是可变对象,而元组是不可变对象。如果数据带有标签的话,字典通常是更好的选择,字典查找通常也比列表中的搜索更快。第5章结构化类型5.5集合5.5集合5.5.1创建集合5.5.2集合操作5.5.3集合运算5.5集合集合(set)是Python中的基本数据结构,可以存储无序的元素。集合内的元素必须是不可变对象,并且所有的元素不能有重复。不支持索引访问集合里的元素使用集合的主要好处是速度快。5.5.1创建集合可以通过将元素用一对花括号{}括起来以创建一个元素集合。集合中的元素用逗号隔开。也可以用set()函数从一个列

温馨提示

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

评论

0/150

提交评论