《大学Python学习ppt课件第3讲_列表.pptx》由会员分享,可在线阅读,更多相关《大学Python学习ppt课件第3讲_列表.pptx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机基础与应用计算机基础与应用计算机基础与应用计算机基础与应用(II II)(经管类经管类经管类经管类)计算思维与计算思维与计算思维与计算思维与PythonPython程序设计程序设计程序设计程序设计第第3 3讲讲 列表列表nPython语言的基本组成nPython中的模块的调用n数据的输入输出上节回顾2n思考:u下面程序出现运行错误,问题出在哪儿?u应该怎么修改程序?上节回顾3上节回顾n思考题:u请编写程序,输入姓名、年龄,输出姓名、年龄和出生年份Please input your name:zhengPlease input your age:20Your name is:zhengYo
2、ur age is:20Your year of birth is:1997什么是序列n序列是程序设计中经常用到的数据存储方式。n序列中每个元素被分配一个序号(元素的位置),也称为索引nPython中常用的序列结构(列表、元组、字典)来实现一些简单而又功能强大的程序。5序列基础知识n序列是一系列连续值,它们通常是相关的,并且按一定顺序排列。n常用的序列类型:列表和元组列表和元组序列序列 c:12 个整数元素引用元素:序列名位置编号第1个元素的位置编号为 0,c0第 2个元素是 c1第 i个元素是ci-1 序列也可以从尾部访问序列也可以从尾部访问:最后一个元素是 c-1倒数第2个是 c-2倒数第
3、 i个元素是 c-i位置位置编号:编号:也称“下标”或“索引”,是整数或整数表达式。6列表n是Python中内置数据类型,是一个元素的有序集合n列表中的每一个数据称为元素n一个列表中的数据类型可以各不相同n其所有元素用逗号分割并放在一对中括号“”和“”中7列表举例n10,20,30,40u所有元素都是整型数据的列表ncrunchy frog,ram bladder,lark vomitu所有元素都是字符串的列表nspam,2.0,5,10,20u该列表中包含了一个字符串元素、一个浮点类型元素、一个整型元素和一个列表类型元素8列表操作_创建列表n创建列表:u使用“=”将一个列表赋值给变量。a_l
4、ist=a,b,mpilgrim,z,example a_list=9列表操作_读取元素n读取元素:u用变量名加元素序号(放中括号中)即可访问列表中某个元素。u注意注意列表的第一个元素序号为列表的第一个元素序号为0 0。n注意:u若一个列表有若一个列表有n n个元素,则访问元素的合法序号范围是个元素,则访问元素的合法序号范围是-nn-1nn-1,当序号,当序号x x为负时,表示从右边计数,其访问的元素实际为序号为为负时,表示从右边计数,其访问的元素实际为序号为n+xn+x的元素的元素。print(a_list2)mpilgrim print(a_list-1)example print(a_l
5、ist-5)a print(a_list-7)Traceback(most recent call last):File,line 1,in print(a_list-7)IndexError:list index out of range print(a_list5)Traceback(most recent call last):File,line 1,in print(a_list5)IndexError:list index out of rangea_list=a,b,mpilgrim,z,example10列表操作_列表切片n列表切片u可以使用列表序号对来截取列表中的任何部分从而得
6、到一个新列表。序号对中第一个序号表示切片开始位置,第二个序号表示切片截止(但不包含但不包含)位置。n注意:u当切片的左索引为0时可缺省,当右索引为列表长度时也可缺省。print(a_list1:3)b,mpilgrim print(a_list1:-1)b,mpilgrim,za_list=a,b,mpilgrim,z,example print(a_list:3)a,b,mpilgrim print(a_list3:)z,example print(a_list:)a,b,mpilgrim,z,example11n上述列表分片时,开始和结束点需要指出,而步长参数被省略u当步长为1时可以省略u
7、步长不能为0u步长可以是负数,此时,开始点的索引值必须大于结束点的索引值列表操作_列表切片_更大步长下标10超出范围,实际从最后一个位置开始12列表操作_增加元素n方法一:使用“+”将一个新列表一个新列表附加在原列表的尾部尾部;n方法二:使用append()方法向列表尾部尾部添加一个新元素一个新元素;n方法三:使用extend()方法将一个一个列表列表添加在原列表的尾部尾部;n方法四:使用insert()方法将一个元一个元素素插入到列表的任意位置任意位置。a_list=1 a_list=a_list+a,2.0 a_list1,a,2.0 a_list.append(True)a_list1,
8、a,2.0,True a_list.extend(x,4)a_list1,a,2.0,True,x,4 a_list.insert(0,x)a_listx,1,a,2.0,True,x,4插入位置插入位置插入元素13列表操作_检索元素n使用count()方法计算列表中某个元素出现的次数;n使用in运算符返回某个元素是否在该列表中;n使用index()方法返回某个元素在列表中的准确位置。a_list.count(x)2 3 in a_listFalse 2.0 in a_listTruea_list=x,1,a,2.0,True,x,4 a_list.index(x)0 a_list.index
9、(5)Traceback(most recent call last):File,line 1,in a_list.index(5)ValueError:5 is not in list14列表操作_删除元素n删除元素u当向列表中添加或删除元素时,列表将自动拓展或收缩,列表中永远不会有缝隙。n方法一:使用del语句删除某个特定位置的元素n方法二:使用remove方法删除某个特定值的元素u重复的元素每次只删除一个 a_list.remove(x)a_lista,2.0,True,x,4 a_list.remove(x)a_lista,2.0,True,4 a_list.remove(x)Trac
10、eback(most recent call last):File,line 1,in a_list.remove(x)ValueError:list.remove(x):x not in lista_list=x,a,2.0,True,x,4 del a_list1 a_listx,2.0,True,x,415列表操作_删除元素n方法三:使用pop(参数)方法来弹出(删除)指定位置的元素,缺省参数时弹出最后一个元素。a_list.pop()4 a_lista,2.0,True a_list.pop(1)2.0 a_lista,True a_list.pop(1)True a_lista a_
11、list.pop()a a_list a_list.pop()Traceback(most recent call last):File,line 1,in a_list.pop()IndexError:pop from empty lista_list=a,2.0,True,416列表常用函数ncmp()u格式:cmp(列表1,列表2)u功能:对两个列表进行比较,若第一个列表大于第二个,则结果为1,相反则为-1,元素完全相同则结果为0。nlen()u格式:len(列表)u功能:返回列表中的元素个数。list1=123,xyz list2=123,abc cmp(list1,list2)1 l
12、ist2=123,z cmp(list1,list2)-1 list2=list1 cmp(list1,list2)0 len(list1)2 字符串按照字母顺序进行字符串按照字母顺序进行比较比较如果字符串是数字,数字比字母小如果字符串是数字,数字比字母小abcxyz123231123 str_l=abc,xyz,123 num_l=123,456,222 max(str_l)xyz min(str_l)123 max(num_l)456 min(num_l)12318列表常用函数nsort()u格式:列表.sort()u功能:用于对列表进行排序,默认是按升序排序。nreverseu在sort
13、()中添加reversereverse参数参数,参数是简单的布尔值True或False,其值等于TrueTrue表示降序排序。list1=1,4,3,6,9,0,2list1.sort()list1 0,1,2,3,4,6,9 list1.sort(reverse=True)list19,6,4,3,2,1,019列表常用函数nsum()u格式:sum(列表)u功能:对数值型列表的元素进行求和运算,对非数值型列表运算则出错。sum(list)25 sum(str_l)Traceback(most recent call last):File,line 1,in sum(str_l)TypeEr
14、ror:unsupported operand type(s)for+:int and strlist=1,4,3,6,9,0,2 str_l=abc,xyz,12320示例1:序列函数应用n创建二个列表score_list1和score_list2uscore_list1中数据为:92,91,86,72,65,62,50,88,46,76uscore_list2中数据为:86,79,100,66,90,56n将列表score_list2合并到score_list1中n在列表score_list1末尾再添加三个数据:66,90,56n将列表score_list1进行降序排序n输出最终的列表sc
15、ore_list1n程序保存为03_score_list.py21程序运行结果合并后列表中的数据:合并后列表中的数据:92,91,86,72,65,62,50,88,46,76,86,79,100,66,90,56末尾添加三个数据后列表中的数据:末尾添加三个数据后列表中的数据:92,91,86,72,65,62,50,88,46,76,86,79,100,66,90,56,66,90,56降序排列后列表中数据:降序排列后列表中数据:100,92,91,90,90,88,86,86,79,76,72,66,66,65,62,56,56,50,4622示例2:序列函数应用n下列是某公司近段时间的月
16、销售数据(万元),请建立一个列表(data_list),列表中输入这些数据u12.0,12.5,11.7,12.6,13.5,12.8,12.0,12.0,11.4,12.0n上述一共有几个的数据?n统计销售额为12.0万元的次数n计算近阶段公司的总销售额n找出销售额中的最小数据,并删除n程序保存为03_data_list.py23程序运行结果共有数据个数:共有数据个数:10销售额为销售额为12.0的次数:的次数:4总销售额:总销售额:122.5销售额中最小值:销售额中最小值:11.4删除最小值后的数据:删除最小值后的数据:12.0,12.5,11.7,12.6,13.5,12.8,12.0,
17、12.0,12.024思考题n如果要计算列表中的所有数据的平均值,在Python中没有类似于avg()函数可用,用什么方法可以实现该功能?nnumber_list=35,68,90,79,80,56n编写程序实现上述功能,程序保存为03_number_list.py25列表常用函数_自学nsorted()和reversed()usorted(列表):对列表进行排序,默认是按升序排序,还可在列表的后面增加一个reverse参数,其等于True则表示按降序排序;ureversed(列表):对列表进行元素位置逆序(不是大小排序)。u以上两个函数的运算结果都将产生新的列表,原列表保持不变 list_test=1,4,3,6,9,0,2 sorted(list_test)0,1,2,3,4,6,9 list_test1,4,3,6,9,0,2 sorted(list_test,reverse=True)9,6,4,3,2,1,0 list_test1,4,3,6,9,0,2 list(reversed(list_test)2,0,9,6,3,4,1 for x in reversed(list_test):print x,2 0 9 6 3 4 126课堂练习n课堂练习u本讲课件所有示例u完成思考题27下讲内容n元组(一种序列结构)n字典(一种映射结构)n做好预习28 29
限制150内