Python实用案例教程-第4章-列元字集课件.pptx

上传人(卖家):三亚风情 文档编号:3371832 上传时间:2022-08-24 格式:PPTX 页数:87 大小:1.64MB
下载 相关 举报
Python实用案例教程-第4章-列元字集课件.pptx_第1页
第1页 / 共87页
Python实用案例教程-第4章-列元字集课件.pptx_第2页
第2页 / 共87页
Python实用案例教程-第4章-列元字集课件.pptx_第3页
第3页 / 共87页
Python实用案例教程-第4章-列元字集课件.pptx_第4页
第4页 / 共87页
Python实用案例教程-第4章-列元字集课件.pptx_第5页
第5页 / 共87页
点击查看更多>>
资源描述

1、列表:列表:list第第4 4章章 序列序列是什么:列元字集是什么:列元字集列表、元组、字典和集合是Python中常用的序列类型,很多复杂的业务逻辑最终还是由这些基本数据类型来实现。表4.1比较了这几种结构的区别。比较项列表元组字典集合类型名称listtupledictset定界符方括号圆括号()大括号大括号是否可变是否是是是否有序是是否否是否支持下标是(使用序号作为下标)是(使用序号作为下标)是(使用“键”作为下标)否元素分隔符逗号逗号逗号逗号对元素形式的要求无无键:值必须可哈希对元素值的要求无无“键”必须可哈希必须可哈希元素是否可重复是是“键”不允许重复,“值”可以重复否元素查找速度非常慢

2、很慢非常快非常快新增和删除元素速度尾部操作快,其他不允许快快0101创创 建建 列列 表表创建列表创建列表列表可以通过多种方式创建。例如:list1=-23,5.0,python,12.8e+6#列表包含不同类型数据list2=list1,1,2,3,4,5#列表中包含列表print(list2)#-23,5.0,python,12800000.0,1,2,3,4,5list2=1*6#产生6个全为1的数组0202索引和切片索引和切片1.索引和切片索引和切片2.运算符运算符3.内置函数内置函数1.索引和切片索引和切片序列中所有的元素都是有编号的,从0开始递增。可以通过编号分别对序列的元素进行访

3、问。Python的序列也可以从右边开始索引,最右边的一个元素的索引为-1,向左开始递减。例如:lst=A,B,C,D,E,F,G,H前面序号索引号为0,1,2,3,4,5,6,7。后面序号索引号为-8,-7,-6,-5,-4,-3,-2,-1。列表中值的切片可以用“列表变量头下标:尾下标:步长”来截取相应的列表,列表被分片后返回一个包含所含元素的新列表。例如:2.运算符运算符(1)加(+)是列表连接运算符。例如:lst+1,2,3#A,B,C,D,E,F,G,H,1,2,3(2)乘()是重复操作。例如:lst*2#A,B,C,D,E,F,G,H,A,B,C,D,E,F,G,H(3)成员资格:n

4、ot in可以使用in运算符来检查一个值是否在序列中,如果在其中,则返回True;如果不在,则返回False。not in与in功能相反。例如:E in lst#True X not in lst#True2.运算符运算符(4)存储单元是否相同:is not用来测试两个对象是否同一个,如果是则返回True,否则返回False。如果两个对象是同一个,两者具有相同的内存地址。例如:x=1,2,3x0 is x1#Flasec=x x is c#Truey=1,2,3 x is y#Falsex0 is y0#True3.内置函数内置函数除了列表对象自身方法之外,很多Python内置函数也可以对列表

5、进行操作。例如:list3=1,2,3,4,5,6,7,8,9,10len(list3)#10min(list3)#1最小值max(list3)#10最大值0303列表的基本操作列表的基本操作1.更新列表:元素赋值更新列表:元素赋值2.删除元素:使用删除元素:使用del语句语句1.更新列表:元素赋值更新列表:元素赋值例如:list3=1,2,3,4,5,6,7,8,9,10list30=one#元素赋值改变list31:4=two,three,four#1:3区段赋值改变list3 one,two,three,four,5,6,7,8,9,10str=list(python)str#p,y,t

6、,h,o,nstr2:=list(THON)#对2的元素和以后的元素进行赋值str#p,y,T,H,O,Nlist1=1,2,3,4,5,6list1a=list1#直接赋值,list1和list1a引用同一个列表list1b=list1:#整个列表切片后再赋值得到一个列表的副本list12=C#修改第3个元素list1#1,2,C,4,5,6list1a#1,2,C,4,5,6list1b#1,2,3,4,5,62.删除元素:使用删除元素:使用del语句语句list4=1,2,3,4,5,6,7,8,9,10del list41#删除列表第1个元素2list40:5=#0:4区段删除list

7、4#7,8,9,10del list4:#清空列表,list4列表变量还在list4#del list4#删除实体变量list40404列列 表表 方方 法法1.常用方法常用方法3.遍历列表元素遍历列表元素2.排序排序1.常用方法常用方法列表.append(元素),用于在列表末尾追加新的元素。列表.extend(序列),可以在列表的末尾一次性追加另一个序列中的多个值。列表.count(元素),统计某个元素在列表中出现的次数。列表.index(元素),从列表中找出某个值第一个匹配项的索引位置。列表.insert(索引,元素):将对象插入到指定序号的列表中。列表.pop(索引):移除列表中的一个元

8、素(默认是最后一个),并且返回该元素的值。列表.remove(元素):移除列表中某个值的第一个匹配项。列表.reverse():将列表中元素顺序全部反向。1.常用方法常用方法例如:a=1,2,1,2,3,4,2,5 a.append(6)#直接追加新的列表元素a#1,2,1,2,3,4,2,5,6a.count(2)#元素“2”出现3次b=7,8a.extend(b)a#1,2,1,2,3,4,2,5,6,7,8a.index(2#1a.insert(0,begin)#在0位置的地方插入begina#begin,1,2,1,2,3,4,2,5,6,7,8x=a.pop()#移除最后一个元素,并

9、返回该元素的值x#8a#begin,1,2,1,2,3,4,2,5,6,7a.remove(2)#移除第一个匹配到“2”的元素abegin,1,1,2,3,4,2,5,6,7a.reverse()#反向排列a#7,6,5,2,4,3,2,1,1,begin1.常用方法常用方法比较列表的大小:1,2,3a=7,0,6,4,2,5,1,9x=a.sort()#对列表a(从小到大)排序,返回值(空值)赋给xa#0,1,2,4,5,6,7,9(2)控制排序)控制排序如果不想按照sort方法默认的方式进行排序,可以指定参数:cmp、key、reverse。例如:a=7,0,6,4,2,5,1,9b=st

10、udent,is,the,mostb.sort(key=len)b#is,the,most,studenta.sort(reverse=True)#对列表a从大到小排序a#9,7,6,5,4,2,1,02.排序排序(3)多维列表)多维列表多维列表就是列表的数据元素本身也是列表。为了引用二维列表中的一个数据值,需要两个索引号,一个是外层列表的,另外一个是元素列表的。例如:list2=1,2,3,4,5,6,7,8,9 list201#2 list221#8例如:list3=000,001,002,010,011,012,100,101,102,110,111,112,200,201,202,21

11、0,211,212 list3210#210例如:List4=i*j for i in range(1,10)for j in range(1,10)List41,2,3,4,5,6,7,8,9,2,4,6,8,10,12,14,16,18,3,6,9,12,15,18,21,24,27,4,8,12,16,20,24,28,32,36,5,10,15,20,25,30,35,40,45,6,12,18,24,30,36,42,48,54,7,14,21,28,35,42,49,56,63,8,16,24,32,40,48,56,64,72,9,18,27,36,45,54,63,72,812

12、.排序排序【例【例4.5】输入20成绩,找出其中的最高分数、平均分数、并且对成绩从大到小排序。代码如下(ch4,lstMAS.py)sum=0list1=for i in range(0,6):n=int(input(n=)sum=sum+n list1.append(n)print(最高分数为:,max(list1)print(平均分数为:%6.2f%(sum/len(list1)list1.sort(reverse=True)print(list1)运行结果:3.遍历列表元素遍历列表元素for k,v in enumerate(列表):print(k,v)例如:list1=-23,5.0,

13、python,12.8e+6#列表包含不同类型数据list2=list1,1,2,3,4,5,61,62,7,8#列表中包含列表 for k,v in enumerate(list2):print(k,v)0-23,5.0,python,12800000.01 12 23 34 45 56 61,627 78 80505列列 表表 推导推导 式式1嵌套列表平铺嵌套列表平铺3同时遍历多个列表或可迭代对象同时遍历多个列表或可迭代对象2元素条件过滤元素条件过滤4复杂的条件筛选复杂的条件筛选列表推导式列表推导式由于Python的内部对列表推导式做了大量优化,所以运行速度快,是推荐使用的一种技术。列表推

14、导式的语法:for in if for in if 列表推导式在逻辑上等价于一个循环语句,只是形式上更加简洁。例如:lst=x x for x in range(n)等价于:lst=for x in range(n):lst.append(x x)1嵌套列表平铺嵌套列表平铺例如:lst=1,2,3,4,5,6,7,8,9 exp for elem in lst for exp in elem1,2,3,4,5,6,7,8,9等价于下面的代码:list1=1,2,3,4,5,6,7,8,9 list2=for elem in list1:for num in elem:list2.append(

15、num)list21,2,3,4,5,6,7,8,92元素条件过滤元素条件过滤使用if子句可以对列表中的元素进行筛选,保留符合条件的元素。例如:lst=1,-2,3,-4,5,-6,7,-8,9,-10 i for i in lst if i+2=0#筛选条件:元素+2=01,-2,3,5,7,9 m=max(lst)m9 index for index,value in enumerate(lst)if value=m#找最大元素所有位置82元素条件过滤元素条件过滤【例【例4.6】接收一个所有元素值都不相等的整数列表x和一个整数n,要求将值为n的元素作为支点,将列表中所有值小于n的元素全部放

16、到n的前面,所有值大于n的元素放到n的后面。代码如下(ch4,lstInfer.py):lst=0,1,-2,3,-4,5,-6,7,-8,9,-10n=0lst1=i for i in lst if inlst=lst1+n+lst2print(lst)运行结果:3同时遍历多个列表或可迭代对象同时遍历多个列表或可迭代对象例如:list1=1,2,3 list2=1,3,4,5 (x,y)for x in list1 for y in list2 if x=y#(1)(1,1),(3,3)(x,y)for x in list1 if x=1 for y in list2 if y!=x#(2)

17、(1,3),(1,4),(1,5)其中:(1)两个列表元素同时遍历时根据元素条件筛选。(2)两个列表元素同时遍历时用两个元素条件筛选。4复杂的条件筛选复杂的条件筛选当然,列表推导式中使用函数或复杂表达式。(1)推导式为复杂表达式。)推导式为复杂表达式。例如:lst=1,-2,3,-4print(val+2 if val%2=0 else val+1 for val in lst if val 0)2,4其中,列表推导式为“val+2 if val%2=0 else val+1”。(2)if判断条件为复杂条件表达式判断条件为复杂条件表达式下列语句能够生成220之间的素数。例如:import ma

18、th num for num in range(2,20)if 0 not in num%g for g in range(2,int(math.sqrt(num)+1)2,3,5,7,11,13,17,19元组:元组:tuple第第4 4章章 序列序列是什么:列元字集是什么:列元字集0101元组的基本操作元组的基本操作1.元组的基本介绍元组的基本介绍3.枚举枚举2.元组的操作注意元组的操作注意4.使用使用 tuple 的好处的好处1.元组的基本介绍元组的基本介绍说明:(1)不包含任何元素,创建空元组,例如:tl=()。(2)元组中只包含一个元素时,创建时需要在元素后面添加逗号,例如:t2=(

19、6,);(3)元组下标索引从0开始,可以进行截取、组合等操作。(4)无关闭分隔符的对象,以逗号隔开,默认为元组。例如:t1=1,2,3,four,5.0,3+4.2j,-1.2e+26#创建元组 t1(1,2,3,four,5.0,(3+4.2j),-1.2e+26)tup1=(python,3.7,True)x,y,z=tup1#同时给多个变量赋值 xpython tup11#得到第1个元素3.71.元组的基本介绍元组的基本介绍(5)元组运算符(+,*)函数和与列表函数基本上是一样的。例如:t1=1,2,3,four,5.0,3+4.2j,-1.2e+26t2=t1+(5,6)#元组连接t2

20、#(1,2,3,four,5.0,(3+4.2j),-1.2e+26,5,6)len(t2)#元素个数,结果:94 in t2#元素4是否存在于元组中,结果:Falsetuple(1,2,3)#参数是列表,转换为元组(1,2,3)tuple(ABC)#参数是字符串,转换为元组(A,B,C)tuple(1,2,3)#参数为元组,转换为元组(1,2,3)(6)以一个序列作为参数并把它转换为元组,如果参数是元组,那么就会原样返回该元组。2.元组的操作注意元组的操作注意(1)修改元组)修改元组元组中的元素值是不允许修改的,但用户可以对元组进行连接组合。例如:tup1,tup2=(1,2,3),(fou

21、r,five)#同时赋值tup3=tup1+tup2#连接元组tup3#(1,2,3,four,five)tup21=two#错误(2)删除元组删除元组元组中的元素值是不允许删除的,但可以使用del语句来删除整个元组。例如:del tup23.枚举枚举enumerate()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象,其中每个元素都是包含索引和值的元组。例如:list(enumerate(python)#(0,p),(1,y),(2,t),(3,h),(4,o),(5,n)list(enumerate(python,c语言)#(0,python),(1,c语言)例如:fo

22、r index,value in enumerate(range(10,15):print(index,value),end=)运行结果:4.使用使用 tuple 的好处的好处(1)tuple 比 list 操作速度快。如果定义了一个值的常量集,并且唯一不断地遍历它,请使用 tuple 代替 list。(2)如果对不需要修改的数据进行“写保护”,可以使代码更安全。(3)tuples 可以在字典中用做 key,但是 list 不行。因为字典的key 必须是不可变的。0202生成器推导式生成器推导式生成器推导式生成器推导式当需要使用生成器对象的元素时,可以转化为列表或元组,或者使用生成器对象的_n

23、ext_()方法或者Python内置函数next()进行遍历,或者直接使用for循环遍历。注意,只能从前往后正向访问其中的元素,当然也不能使用下标访问其中的元素。不能访问已访问过的元素。如果需要重新访问,必须重新创建该生成器对象。例如:gen=(j+1)*3 for j in range(6)#创建生成器对象 gengenerator object at 0 x000001A8656EA570 gen._next_()#使用生成器对象的_next_()方法获取元素3 gen._next_()#获取下一个元素6 tuple(gen)#将生成器对象转换为元组(9,12,15,18)tuple(ge

24、n)#生成器对象已遍历结束,没有元素了()gen=(j+1)*3 for j in range(6)list(gen)#将生成器对象转换为列表3,6,9,12,15,18for item in gen:#使用循环直接遍历生成器对象中的元素 print(item,end=)3 6 9 12 15 18生成器推导式生成器推导式【例例4.7】将指定元组中元素大于平均值的数成新元组。代码如下(ch4,tupInfer.py):tup1=(1,2,3,-4,5,-6,7,8,-9,10)avg=sum(tup1)/len(tup1)#平均值lst=x for x in tup1 if xavg#列表推导

25、式tup2=tuple(lst)print(tup2)运行结果:集合:集合:set第第4 4章章 序列序列是什么:列元字集是什么:列元字集0101集合的创建与访问集合的创建与访问集合的创建与访问集合的创建与访问非空集合可以把逗号分隔的元素放在一对大括号中来创建,如:jack,sjoerd。集合元素必须是可哈希的、不可改变的,如str、tuple、frozenset、数字等。set()得到一个空的集合。例如:set1=set()set2=1,2,3#1,2,3 set3=set(1,2,3)#1,2,3 set4=set(abc)#b,a,c集合是无序的不重复的,例如:list1=1,2,1,3

26、set5=set(list1)print(set5)#3,1,20202集合基本操作符集合基本操作符1.元素操作元素操作3.查找和判断查找和判断2.逻辑操作逻辑操作4.其他其他1.元素操作元素操作(1)增加元素:集合.add(元素)(2)增加多个元素:集合.update(列表)。(3)删除元素:集合.remove(元素)或 集合.discard(元素)。若元素不存在,集合.remove(元素)会报错,而集合.discard(元素)不会。(4)清空集合:集合.clear(),清空集合的所有元素。例如:set2=1,2,3#1,2,3 set2.add(5)#1,2,3,5set2.update(

27、5,7,8)#1,2,3,5,7,8 set2.remove(2)#1,3,5,7,8 元素都为不可变类型,无法直接修改元素,但可以通过先删除再添加来改变元素。例如:set2.discard(8)set2.add(9)set2#1,3,5,7,9 set2.clear()#2.逻辑操作逻辑操作(1)与操作:集合1&集合2或 集合1.intersection(集合2),返回一个新的set包含集合1和集合2中的公共元素。(2)集合或操作:集合1 l 集合2 或 集合1.union(集合2):返回一个新的set包含集合1和集合2中的每一个元素。(3)集合与非操作:集合1 集合2 或 集合1.symm

28、etric_difference(集合2),返回一个新的set包含集合1和集合2中不重复的元素。(4)集合减操作:集合1-集合2或 集合1.difference(集合2),返回一个新的set包含集合1中有但是集合1中没有的元素。例如:a=1,2,4,5,6 b=1,2,3,5,6 a&b#1,2,5,6 a.intersection(b)#1,2,5,6 a|b#1,2,3,4,5,6 a.union(b)#1,2,3,4,5,6 a b#3,4 a b#4 3.查找和判断查找和判断(1)查找元素:集合虽然无法通过下标索引来定位查找元素,但可以通过x in set来判定是否存在x元素。x no

29、t in 集合:判定集合中是否不存在x元素。例如:set3=one,two,three,four,five,six TWO in set3#Flase(2)比较1,2,3 1,2,3=3,2,1#True测试两个集合是否相等1,2,4 1,2,3#False集合之间的包含测试(3)判断是否是子集(包含)或超集():集合1.issubset(集合2)或 集合1.issuperset(集合2)。例如:set3=one,two,three,four,five,six set4=two,six set4.issubset(set3)#Trueset4.issuperset(set3)#Flaseset

30、3.issuperset(two,six)#True4.其他其他(1)转变成列表或元组:list(集合)或tuple(集合)。例如:set2=1,2,3#1,2,3 list(set2)#1,2,3 tuple(set2)#(1,2,3)(2)得到集合元素个数:len(集合)。(3)集合弹出(删除)元素:集合.pop(),从集合中删除并返回任意一个元素。例如:set2=1,2,3#1,2,3 x=set2.pop()print(x,len(set2)#1 24.其他其他(4)集合的浅复制:集合.copy(),返回集合的一个浅复制。例如:set3=one,two,three,four,five,

31、sixset5=set3.copy()set5=set3#Trueset3.remove(one)set5=set3#Flase【例【例4.8】生成20个120之间的随机数,统计出重复个数。代码如下(ch4,setRand.py):import randommyset=set()n=0while n dict1=1:one ,2:two,3:three 其中,键是数字,值是字符串。dict1a=a:100,b:boy,c:1,2,AB其中,键是字符,值是数值、字符串、列表。(2)通过)通过dict函数来建立字典函数来建立字典例如:list1=(1,one),(2,two),(3,three)d

32、ict2=dict(list1)#通过dict函数建立映射关系 dict2#1:one,2:two,3:three dict3=dict(one=1,two=2,three=3)#one:1,two:2,three:3 dict(zip(one,two,three,1,2,3)#one:1,two:2,three:31.创建字典创建字典(3)两个列表合成字典)两个列表合成字典例如:lstkey=a,b,c lstval=1,2,3 dict1=dict(zip(lstkey,lstval)dict1a:1,b:2,c:32.基本基本操作操作(1)得到字典中项(键:值对)的个数:len(字典)(

33、2)得到关联键上的值:字典键例如:dict1=1:one ,2:two,3:three print(len(dict1)#3 print(1,dict11)#1 one print(one,dict3one)#one 1如果使用字典中没有的键访问值,则会出错。(3)字典项添加修改:字典键=值例如:dict11=壹;dict12=贰dict14=肆#键不存在,添加新的项dict1#1:壹,2:贰,3:three,4:肆2.基本基本操作操作(4)删除字典项:del 字典键 能删单一的元素也能清空字典,清空只需一项操作。例如:del dict13#删除dict1键是3的项dict1.clear()#

34、清空dict1字典所有条目del dict1#删除字典dict1(5)判断是否存在键项:键 not in 字典 例如:dict1=1:one ,2:two,3:three 3 in dict1#True4 not in dict1#True(6)字典转换为字符串:str(字典)例如:dict1=1:one ,2:two,3:three str1=str(dict1)str1#1:one,2:two,3:three0202字字 典典 方方 法法1访问字典项访问字典项2.修改删除修改删除3复制复制4.遍历字典遍历字典5使用给定的键建立新的字典使用给定的键建立新的字典1.访问访问字典项字典项(1)字

35、典.get(键,默认值)例如:d1id=one,two#id:one,two print(d1name)#打印字典中没有的键则会报错print(d1.get(id)#one,twoprint(d1.get(name)#None 用get方法就不会报错d1.get(name,N/A)#N/A#取代默认的None,用N/A来替代(2)字典.setdefault(键,默认值):在字典中不含有给定键的情况下设定相应的键值。例如:d1=d1.setdefault(name,N/A)#N/A 如果不设定值,默认是Noned1#name:N/Ad1name=周#name:周d1.setdefault(nam

36、e,N/A)#周 当键为name的值不会空返回对应的值1.访问访问字典项字典项(3)字典.items():将所用的字典项以列表方法返回,这些列表项中的每一项都来自于(键、值),但是并没有特殊的顺序。(4)字典.keys():将字典中的键以列表形式返回。(5)字典.values():以列表的形式返回字典中的值。例如:dict1=1:one ,2:two,3:three dict1.items()#dict_items(1,one),(2,two),(3,three)dict1.keys()#dict_keys(1,2,3)dict1.values()#dict_values(one,two,th

37、ree)(6)iter(字典):在字典的键上返回一个迭代器。例如:dict1=1:one ,2:two,3:three iterd=iter(dict1)iterd#2.修改删除修改删除(1)字典1.update(字典2):利用字典2项更新字典1,如果没有相同的键,会添加到旧的字典里面。dict1=1:one ,2:two,3:three dict2=2:two,4:four dict1.update(dict2)dict1#1:one,2:two,3:three,4:four(2)字典.pop(键,默认值):获得对应于给定键的值,并从字典中移除该项。dict1=1:one ,2:two,3:

38、three print(dict1.pop(1)#onedict1#2:two,3:three2.修改删除修改删除(3)字典.popitem():pop()方法会弹出列表的最后一个元素,但popitem会弹出随机的项,因为字典并没有顺序和最后的元素。dict1=1:one ,2:two,3:three print(dict1.pop(1)#onedict1#2:two,3:threeprint(dict1.popitem()(4)字典.clear():清除字典中所有的项。x=1:one ,2:two,3:three y=xx=#x字典清空,y不变x=1:one ,2:two,3:three y

39、=xx.clear()#x和y都字典清空3.复制复制(1)浅复制:字典)浅复制:字典.copy()浅复制值本身就是相同的,而不是得到副本。例如:d1=xm:王一平,kc:C语言,数据结构,计算机网络 d2=d1.copy()#浅复制d2xm=周婷#修改字典xm对应的值d2kc.remove(数据结构)#删除字典的某个值d1#xm:王一平,kc:C语言,计算机网络d2#xm:周婷,kc:C语言,计算机网络3.复制复制(2)深复制:)深复制:deepcopy(字典字典)为避免上面浅复制带来的影响,可以用深复制。from copy import deepcopy#导入函数d1=d1id=one,tw

40、o#id:one,twod2=d1.copy()#浅复制d3=deepcopy(d1)#深复制d1id.append(three)#id:one,two,threed2#id:one,two,threed3#id:one,two4.遍历字典遍历字典对字典对象迭代或者遍历时默认遍历字典中的键。如果需要遍历字典的元素必须使用字典对象的items()方法明确说明,如果需要遍历字典的“值”则必须使用字典对象的values()方法明确说明。当使用内置函数以及in运算符对字典对象进行操作时也是一样。例如:dict1=1:one ,2:two,3:three for item in dict1:#遍历元素健

41、,for item in dict1.keys()等价 print(item,end=)print()for item in dict1.items():#遍历元素 print(item,end=)print()for item in dict1.values():#遍历元素值 print(item,end=)print()5.使用使用给定的键建立新的字典给定的键建立新的字典fromkeys(seq,值):使用给定的键建立新的字典,每个键默认对应的值为None。例如:.fromkeys(oldname,newname )#oldname:None,newname:None dict.fromk

42、eys(oldname,newname)#oldname:None,newname:None dict.fromkeys(oldname,newname,zheng)不用默认的None,自己提供默认值zheng。oldname:zheng,newname:zheng序序 列列第第4 4章章 序列序列是什么:列元字集是什么:列元字集0101序列间的转换序列间的转换1.字符串和列表和元组转换字符串和列表和元组转换2.列表转换为字符串列表转换为字符串3.其他相互转换其他相互转换1.字符串和列表和元组转换字符串和列表和元组转换Python列表、元组和字符串,它们之间的互相转换使用3个函数,即str()

43、、tuple()和list()。例如:str=pythonlist(str)#p,y,t,h,o,ntuple(str)#(p,y,t,h,o,n)tuple(list(str)#(p,y,t,h,o,n)str(1,2,3)#1,2,3str(1,2,3)#(1,2,3)str(1,2,3)#1,2,31.字符串和列表和元组转换字符串和列表和元组转换【例【例4.9】统计一个字符串中大写字母、小写字母、数字、其他字符个数,然后将其组成一个新元组,前面元素包含统计个数,然后将字符串作为元素。代码如下(ch4,strCont.py):统计一个字符串中小写字母、大写字母、数字、其他字符个数 然后将其

44、组成一个新元组str1=input(str=)cont=0,0,0,0for ch in str1:if ch.islower():cont0+=1 elif ch.isupper():cont1+=1 elif ch.isnumeric():cont2+=1 else:cont3+=1cont.append(str1)mytup=tuple(cont)print(小写字母=%d,大写字母=%d,数字=%d,其他字符=%d%(mytup0,mytup1,mytup2,mytup3)2.列表转换为字符串列表转换为字符串列表和元组通过joln函数转换为字符串。例如:list1=a,b,c.join

45、(list1)3.其他其他相互转换相互转换例如:dict1=1:one ,2:two,3:three list1=a,b,ctup1=tuple(dict1)#(1,2,3)字典的key组成的tupleset(list1)#c,a,bset(tup1)#1,2,33.其他其他相互转换相互转换例如:list(range(5)#把range对象转换为列表0,1,2,3,4 tuple(_)#一个下画线(_)表示上一次正确的输出结果(0,1,2,3,4)dict(zip(1234,abcde)#两个字符串转换为字典1:a,2:b,3:c,4:d set(aacbbeeed)#创建可变集合,自动去除重

46、复a,c,b,e,d _.add(f)_#上一次正确的输出结果a,c,b,e,f,d frozenset(aacbbeeed)#创建不可变集合,自动去除重复frozenset(a,c,b,e,d)0202常用内置函数常用内置函数1.范围范围2.最最值和求和值和求和3.函数式编程函数式编程1.范围范围(1)range函数函数range(结束)或 range(起始,结束 ,步长):返回一个左闭右开的序列数。其中:步长默认为1,起始默认为0。如果步长0,则最后一个元素(起始+步长)结束。如果步长结束。否则抛出VauleError异常。例如:运行结果:list1=A,B,C,D,E,Ffor i in

47、 range(len(list1):print(list1i,end=,)1.范围范围range函数还可以对范围对象进行包含测试、元素索引查找、支持负索引、分片操作及用=或!=来比较等。例如:r=range(0,10,2)3 in r False#3不在范围元素中r1#第1个元素2r.index(2)#元素2的位置1r=range(0,12,2)#比较两个范围元素是否相等Falser=range(0,8,2)#后面范围包含认为相等True2.最最值和求和值和求和max(x,默认值,键)、min(x,默认值,键):计算列表、元组或其他包含有限个元素的可迭代对象x中所有元素最大值、最小值。其中,d

48、efault参数用来指定可迭代对象为空时默认返回的最大值或最小值,而key参数用来指定比较大小的依据或规则,可以是函数或lambda表达式。sum(x 开始位置):计算列表、元组或其他包含有限个元素的可迭代对象x中所有元素之和,start参数控制求和的初始值。len():得到列表所包含的元素的数量。enumerate():得到包含若干下标和值的迭代对象。all():测试列表中是否所有元素都等价于True。any():测试列表中是否有等价于True的元素。例如:from random import randint L1=randint(1,100)for i in range(10)L1#99,

49、48,42,87,16,61,71,73,88,46 print(max(L1),min(L1),sum(L1)/len(L1)#99 16 63.12.最最值和求和值和求和例如:max(2,11)#2 max(2,11,key=len)#11 max(,default=None)#空 from random import randint L2=randint(1,50)for i in range(5)for j in range(6)L2#包含6个子列表的列表4,40,43,48,29,32,38,23,30,17,39,15,36,45,32,16,39,34,47,45,7,41,19

50、,10,18,28,4,45,50,38 max(L2,key=sum)#返回元素之和最大的子列表16,39,34,47,45 max(L2,key=lambda x:x1)#返回所有子列表中第2个元素最大的子列表7,41,19,10,182.最最值和求和值和求和例如:sum(2*i for i in range(10)#20+21+22+23+24+.,对应二进制10个11023 int(1*10,2)#1111111111,二进制10个1=10231023 sum(1,2,3,4,)1,2,3,4例如:x=2,3,1,0,4,5 all(x)#测试是否所有元素都等价于TrueFalse#因

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Python实用案例教程-第4章-列元字集课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|