《Python程序设计》教学课件—06组合数据类型.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《Python程序设计》教学课件—06组合数据类型.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python程序设计 Python 程序设计 教学 课件 06 组合 数据类型
- 资源描述:
-
1、6.1.1 创建列表对象和列表变量1.创建列表对象(1)使用中括号创建列表对象创建列表对象的格式如下:元素1,元素2,元素3,.,元素n列表中的每个元素都有一个位置索引,第一个索引是0,第二个索引是1,以此类推。例如,下面的列表同时包含整数、浮点数、字符串和列表这4种数据类型。100,3.5,Python语言,2,3,4,8(2)使用list类的构造函数创建列表对象语法格式如下:list(可迭代对象)其中,参数“可迭代对象”为可选项,用于指定一个可迭代(Iterable)对象,可以是列表、元组、可变集合、字典等。【例6-1】用list()构造函数创建列表示例。list()#创建空列表对象lis
2、t(Python程序设计)#创建列表对象,字符串被分成每个字符成为一个元素list(1,2,3)#创建列表对象list(range(1,101)#使用range()函数创建区间列表对象1,2,3,99,100在IDLE中的交互方式下,运行结果如图6-1所示。(3)用type()函数测试列表通过type()函数可以测试列表的数据类型,例如:type(100,3.5,Python语言,2,3,4,8)2.创建列表变量若要引用某个列表对象,则需要使用赋值运算符将列表对象赋值给变量。创建列表类型的变量与创建其他类型的变量一样,也使用赋值运算符“=”将一个列表对象赋值给变量。其语法格式如下:列表变量名=
3、元素1,元素2,元素3,.,元素n其中,“列表变量名”表示列表的名称,列表变量名既要符合Python命名规范,又不能与内置函数重名。【例6-2】创建列表对象,然后将列表对象赋值给变量。num=1,2,3,4,5list1=Python编程,Java编程,C#编程list2=Jack,male,19,178emptylist=#emptylist是一个空列表6.1.2 列表的通用操作1.列表的访问从起始元素开始,索引值从0开始递增。Python还支持索引值是负数,从最右边的一个元素开始计数,索引值从-1开始,从右向左计数。通过方括号运算符和索引可以对列表中的元素进行访问,语法格式如下:列表变量名
4、索引其中,“索引”表示列表中元素的位置编号,可以是一个值,也可以是一个表示索引的变量或表达式,其取值可以是正整数、负整数或0。.【例6-3】将列表赋值给变量,然后用索引访问列表中的元素。a=1,2,3,4,5print(正向索引:,a0,a1,a2,a3,a4,n负向索引:,a-1,a-2,a-3,a-4,a-5)正向索引:1 2 3 4 5 负向索引:5 4 3 2 12.列表的切片操作通过切片操作,可以从列表中截取某个范围的元素,从而构成一个新的列表。列表的切片操作的语法格式如下:列表变量名start:stop:step【例6-4】对列表切片。a=1,2,3,4,5print(a:3)#取
5、索引0、1、2(不包括索引3处的元素)的元素,即左闭右开原则1,2,3print(a:3)#隔2个元素取一个元素,区间是整个列表1,4print(a:)#取整个列表,此时 中只需一个冒号1,2,3,4,5print(a-1:-5:-1)#从右向左取元素5,4,3,2【例6-5】索引和切片应用示例。#分别输入年、月,日,组合后以对应的英文形式输出months=January,February,March,April,May,June,July,August,September,October,November,December#定义131天的英文后缀endings=st,nd,rd+17*th+
6、st,nd,rd+7*th+styear=input(Year:)month=int(input(Month(1-12):)day=int(input(Day(1-31):)month_name=monthsmonth-1ordinal=str(day)+endingsday-1print(month_name+ordinal+.+year)print(Spring is,months1:4)print(Autumn is,months-5:-2)运行程序,输入年、月、日,运行结果如下:Year:2019Month(1-12):11Day(1-31):28November 28th.2019S
7、pring is February,March,AprilAutumn is August,September,October3.列表的相加使用“+”运算符做相加操作,会将两个列表前后依次连接在一起,生成一个新的列表,但不会去除重复的元素。语法格式如下:列表1+列表2【例6-6】用“+”运算符连接两个(甚至多个)列表。1,2,3+Python语言,100+60,70,80,90,100#列表对象相加1,2,3,Python语言,100,60,70,80,90,100a=1,2,3,4,5b=10,20,30a=a+b#列表变量相加print(a)1,2,3,4,5,10,20,304.列表的乘
8、法用整数n乘以一个列表会生成一个新的列表,新列表为将原来列表重复n次得到。语法格式如下:列表*n 或 n*列表【例6-7】列表乘法运算示例之一。1,2,3*31,2,3,1,2,3,1,2,3比较特殊的是在进行列表的乘法运算时,还可以实现初始化指定长度列表的功能。【例6-8】列表乘法运算示例之二。list=None*5#创建一个长度为5的列表,列表中的每个元素都是None,表示什么都没有print(list)None,None,None,None,None0*50,0,0,0,0Hello*3Hello,Hello,Hello5.检查元素是否包含在列表中使用in关键字检查某元素是否为列表中的成
9、员,其语法格式为:值 in 列表其中,“值”表示要检查的元素。与in关键字用法相同,但功能恰好相反的还有not in关键字,它用来检查某个元素是否不包含在指定的序列中,其语法格式为:值 not in 列表【例6-9】检查元素是否在列表中。2 in 1,2,3,4,5True s=a,bc,ad bc not in sFalse if bc in s:print(该元素在列表中)该元素在列表中6.比较两个列表使用关系运算符对两个列表进行比较。【例6-10】比较两个列表。1,2,3,41,2,2,3,4True7.访问列表中的元素(1)访问列表中的指定元素在列表变量名后的方括号中写上元素索引值,可
10、以访问列表中的某一个元素。索引可以采用从左端的0开始向右排列的正索引;也可以从右端的-1开始向左排列的负索引。【例6-11】获取name列表中索引值为1的元素。s=abc,100,True print(s0,s1,s2)abc 100 True(2)访问列表中的全部元素如果已经创建了一个列表,要输出列表中的全部元素,只须写出列表名。【例6-12】输出例6-11中列表s的全部元素。print(s)abc,100,True(3)访问列表中的多个元素除了一次性访问列表中的全部元素外,列表还可以通过切片操作实现一次性访问多个元素。【例6-13】访问列表中的多个元素示例。num=1,2,3,4,5,6,
11、7,8,9 print(num3:5,num6:8,num0:8,num7:9)4,5 7,8 1,2,3,4,5,6,7,8 8,9(4)遍历列表元素逐一访问列表的元素称为遍历列表元素。可以用下述4种方法来遍历列表元素。1)使用列表的索引遍历。2)使用in操作符遍历。3)使用range()或xrange()函数遍历。4)使用iter()函数遍历。【例6-14】遍历列表元素示例。mylist=11,22,33,44,55,66,77,88,99print(第1种遍历方法,使用列表的索引)i=0while i a,b,c=11,22,33 print(a,b,c)11 22 33【例6-16】拆
12、分赋值示例之二。a,*b,c=11,22,33,44,55,66 print(a,b,c)11 22,33,44,55 666.1.3 列表的专用操作1.元素赋值通过索引可以修改列表中特定元素的值。【例6-17】元素赋值示例。a=1,2,3,4,5,6 a1=200 a3=400 a1,200,3,400,5,62.切片赋值通过切片赋值可以使用一个值列表修改列表指定范围的一组元素的值。1)切片赋值时,如果步长为1,则对提供的值列表长度没有要求。在这种情况下,可以使用与切片序列长度相等的值列表替换切片。【例6-18】切片赋值示例之一。a=1,2,3,4,5,6 a1:4=200,300,400
13、a1,200,300,400,5,62)也可以用与切片长度不相等的值列表替换切片。如果提供的值列表长度大于切片的长度,则会插入新的元素。【例6-19】切片赋值示例之二。a=1,2,3,4,5,6 a1:4=200,300,400,500,600 a1,200,300,400,500,600,5,63)如果提供的值列表长度小于切片的长度,则会删除多出的元素。【例6-20】切片赋值示例之三。a=1,2,3,4,5,6 a1:4=200,300 a1,200,300,5,64)当切片赋值时,如果步长不等于1,则要求提供的值列表长度必须与切片长度相等,否则将出现ValueError错误。【例6-21】
14、切片赋值示例之四。a=1,2,3,4,5,6,7,8,9,10 a0:10:2=11,33,55,77,99 a11,2,33,4,55,6,77,8,99,103.删除列表元素或列表当要从列表中删除指定的元素或者删除整个列表时,使用del语句。其语法格式如下:del 列表名键 或 列表名【例6-22】删除列表元素和列表示例。a=1,2,3,4,5,6 del a3 a1,2,3,5,6 del a aTraceback(most recent call last):File,line 1,in aNameError:name a is not defined若要从列表中删除指定范围内的元素,
15、也可以使用切片赋值。【例6-23】用切片删除列表元素。a=1,2,3,4,5,6 a1:4=a1,5,64.列表解析列表解析有以下两种语法格式:表达式 for 变量 in 列表表达式 for 变量 in 列表 if 条件表达式其功能是将表达式应用到每个变量上,为新的列表创建一个新的数据值。其中,“表达式”可以是任何运算表达式,“变量”是列表中遍历元素的值。(1)简单的列表解析【例6-24】通过列表解析生成数字19的列表。t=x for x in range(1,10)print(t)1,2,3,4,5,6,7,8,9【例6-25】通过列表解析生成数字19的平方的列表。t=x*x for x i
16、n range(1,10)print(t)1,4,9,16,25,36,49,64,81【例6-26】通过列表解析列出110中能被2整除的数字的平方。t=x*x for x in range(1,10)if x%2=0 t4,16,36,64【例6-27】使用列表解析生成0100之内10个随机数的列表,然后根据这个列表生成每个元素的平方的列表和偶数的列表。import randommylist=random.randint(0,100)for i in range(10)#生成列表print(mylist)mylist2=i*i for i in mylist#对列表中的每个元素进行平方运算p
17、rint(mylist2)mylist3=i for i in mylist if i%2=0#挑选列表中的所有偶数print(mylist3)(2)两次循环两次循环是循环的嵌套,得到的列表元素个数是两轮循环中循环次数的乘积。【例6-28】先利用列表解析生成列表t和s,再通过两次循环生成一个新列表,新列表的元素为列表t和s元素的乘积。t=x for x in range(1,5)s=x for x in range(5,8)print(t)#输出1,2,3,4print(s)#输出5,6,7print(x*y for x in t for y in s)#输出5,6,7,10,12,14,15
18、,18,21,20,24,286.1.4 列表相关的函数1.适用于序列对象的内置函数Python提供了几个内置函数(见表6-1),可用于实现与序列相关的一些常用操作。【例6-29】sorted()函数的应用。x=8,10,3,1,2,6,4,7,5,9 sorted(x)#升序排序1,2,3,4,5,6,7,8,9,10 x#排序后查看原始列表8,10,3,1,2,6,4,7,5,9 sorted(x,key=None,reverse=True)#降序排序10,9,8,7,6,5,4,3,2,1【例6-30】sum()函数的应用。x=1,2,3,4,5 sum(x)15 sum(x,10)#1
19、5+10=25252.只适用于列表对象的成员方法(1)lst.append(x)该方法在列表lst末尾添加元素x,等价于执行复合赋值语句lst+=x。【例6-31】在列表中添加字符串元素“Python”。x=C,Java,C#x.append(Python)xC,Java,C#,Python【例6-32】列表的嵌套。t=a,b,c,dt.append(e,f)运行结果如下:a,b,c,d,e,f(2)lst.extend(L)本方法在列表lst末尾添加另一个列表L,等价于执行复合赋值语句lst+=L。【例6-33】合并两个列表。x=C,Java,C#x.extend(Python,C+)xC,
20、Java,C#,Python,C+(3)lst.insert(i,x)该方法在列表lst的i位置插入元素x,如果i大于列表的长度,则将元素x插入到列表末尾。【例6-34】在列表x中插入元素。x=1,2,3 x.insert(1,100)x1,100,2,3 x.insert(10,200)x1,100,2,3,200(4)lst.remove()该方法从列表lst中删除第一个值为x的元素,如果列表中不存在这样的元素,则会出现ValueError错误。【例6-35】从列表x中删除元素100。x=1,2,3,4,5,6 x.remove(4)x1,2,3,5,6 x.remove(100)Trac
21、eback(most recent call last):File,line 1,in x.remove(100)ValueError:list.remove(x):x not in list(5)lst.pop(i)该方法从列表lst中弹出索引值为i的元素,然后删除并返回该元素;如果未指定参数i,则弹出列表中的最后一个元素;如果指定的参数i越界,则出现IndexError错误。【例6-36】。返回列表x中索引值为3的元素并将其删除。x=1,2,3,4,5,6 y=x.pop(3)x1,2,3,5,6 y4(6)lst.count(x)该方法返回元素x在列表lst中出现的次数。【例6-37】返
22、回元素2在列表x中出现的次数。x=1,2,3,2,3,2,12,0,3 x.count(2)3(7)lst.index(x)该方法返回元素x在列表lst中第一次出现的索引值。如果元素x未包含在列表lst中,则会出现ValueError错误。【例6-38】返回元素“C+”和“C#”在列表x中第一次出现的索引值。x=C,Java,C+,PHP,Python,JavaScript x.index(C+)2 x.index(C#)Traceback(most recent call last):File,line 1,in x.index(C#)ValueError:C#is not in list(
23、8)lst.sort(key=None,reverse=False)该方法对列表lst排序,其中参数的含义与内置函数sorted()相同。使用该方法会修改原列表,若要返回一个新的列表,须使用内置函数sorted()。【例6-39】对列表x分别进行升序和降序排列。x=6,7,5,8,9,0,2,4,3,1,3 x.sort()x0,1,2,3,3,4,5,6,7,8,9 x.sort(key=None,reverse=True)x9,8,7,6,5,4,3,3,2,1,0(9)lst.reverse()该方法反转列表lst中所有元素的位置。【例6-40】反转列表中所有元素的位置。x=6,7,5,
24、8,9 x.reverse()x9,8,5,7,66.1.5 嵌套列表如果一个列表的元素也是列表,则称该列表为嵌套列表,也称多维列表。二维列表中的每一行可以使用索引来访问,该索引称为行索引。“列表名行索引”表示列表中的某一行,其值就是一个一维列表;每一行中的值可以通过另一个索引访问,该索引称为列索引。“列表名行索引列索引”表示指定行中某一列的值,其值可以是数字或字符串等。例如,对于列表t=x00,x01,x02,x10,x11,x12,tx20,x22,x23t0表示第一个元素x00,x01,x02。对于列表中的每个元素,即子列表中的所有元素,需要使用二级索引来表示。例如,t12表示第二个子列
25、表中的第三个元素x12。【例6-41】定义一个4行5列的二维列表m,并通过mij的形式访问列表中的元素,其中i和j分别表示行索引和列索引。m=1,2,3,4,5,11,22,33,44,55,111,222,333,444,555,a,b,c,d,f print(m00,m11,m22,m33,m34)运行结果如下:1 22 333 d f【例6-42】两层嵌套列表遍历示例。mylist=1001,Apple,2.5,山东,2021-9,20,1002,Banana,3.5,海南,2021-2,30,1003,Orange,4.3,四川,2021-12,50for each in mylist
展开阅读全文