版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章
列表、元组和字典第5章列表、元祖、字典·
列表·
元组·
字典掌握掌握掌握掌握
学习目标掌握什么是列表,以及列表的常见操作12掌握列表的嵌套使用掌握元组的基本使用34掌握字典的常见操作以及字典的遍历01列表概述02列表的循环遍历03列表的常见操作目录页04列表的嵌套05元组06字典过渡页01列表概述02列表的循环遍历03列表的常见操作04列表的嵌套05元组06字典01列表概述假设一个班有100个学生,如果每个变量存放一个学生的姓名,是不是很麻烦?如果有一千个学生甚至更多,那该怎么办呢?使用列表!列表概述列表概述列表是Python中的一种数据结构,它可以存储相同或不同类型的数据。例如:A=[1,'xiaoWang','a',[2,'b']]说明:列表也可以嵌套,即列表元素就是一个列表举例:stuNo=["201901001","201901002","201901003"]stuName=["张三","李四","马五"]students=[["201901001","张三"],["201901002","李四"],["201901003","马五"]]print(stuNo)print(stuName)print(students)列表概述列表索引是从0开始的,我们可以通过下标索引的方式来访问列表中的值。
A=['xiaoWang','xiaoZhang','xiaoHua']
print(A[0])
print(A[1])过渡页01列表概述02列表的循环遍历03列表的常见操作04列表的嵌套05元组06字典02列表的循环遍历列表的循环遍历-对列表元素逐个进行处理1.使用for循环遍历列表namesList=['xiaoWang','xiaoZhang','xiaoHua']fornameinnamesList:print(name)#处理列表的循环遍历2.使用while循环遍历列表namesList=[‘xiaoWang’,‘xiaoZhang’,‘xiaoHua’]length=len(namesList)#列表长度i=0whilei<length:print(namesList[i])
i+=1补充:字符串的遍历,和列表类似s="123"forcharins: print(char)过渡页01列表概述02列表的循环遍历03列表的常见操作04列表的嵌套05元组06字典03列表的常见操作在列表中查找元素在列表中查找元素的方法包括:in(存在),如果存在那么结果为true,否则为false。notin(不存在),如果不存在那么结果为true,否则false。举例:s=[1,2,3,4,5]x=3ifxins: print("有")else: print("没有")说明:字符串也可以用类似方法判断字符是否在字符串中举例#待查找的列表nameList=['xiaoWang','xiaoZhang','xiaoHua']#获取用户要查找的名字findName=input('请输入要查找的姓名:')#查找是否存在iffindNameinnameList:print('在列表中找到了相同的名字')else:print('没有找到')在列表中修改元素列表元素的修改,也是通过下标来实现的。A=['xiaoWang','xiaoZhang','xiaoHua']A[1]=‘xiaoLu’注意:字符串是不能通过下标来修改其中字符的!s=“abcdefg”s[0]=“1”#运行会提示错误#字符串拼接s="abcdefg"#s[0]="1"#运行会提示错误s="1"+s[1:]print(s)举例:#定义变量A,默认有3个元素A=['xiaoWang','xiaoZhang','xiaoHua']print("-----修改之前,列表A的数据-----")fortempNameinA:print(tempName)#修改元素A[1]='xiaoLu'print("-----修改之后,列表A的数据-----")fortempNameinA:print(tempName)list更多操作
list.append(x):在列表的末尾添加元素x,等价于a[len(a):]=[x]。
list.extend(L):在列表末尾加入指定列表L中的所有元素,等价于a[len(a):]=L或a+L。
list.insert(i,x):在给定位置插入元素,即在位置i处插入x,其余元素依次向后退。因此,a.insert(0,x)意味着在列表的首部插入元素,而a.insert(len(a),x)等价于a.append(x)。
list.remove(x):删除列表中第一个值为x的元素,若该元素不存在则出错。
list.pop([i]):删除列表中给定位置i处的元素,并返回该元素。若不指定索引值(list.pop),则移除并返回列表中的最后一个元素。
list.clear():删除列表中的所有元素,等价于:dela[:]。
list.index(x):返回列表中值为x的元素的位置索引,若不存在则出错。
list.count(x):返回x在列表中出现的次数。
list.sort(key=None,reverse=False):对列表中的元素排序,默认为升序。
list.reverse():将列表中元素的顺序反转。
list.copy():返回列表的浅复制,等价于a[:]。在列表中增加元素列表是一种数据类型。在列表中增加元素的方式有多种:通过append可以向列表末尾添加一个元素通过extend可以将另一个列表的所有元素添加到列表末尾中。通过insert在指定位置index前插入一个元素object。说明:字符串变量,只能整体赋值,不能对其某个位置的字符单独赋值。列表就灵活多了!s=“123456”s=“abcdefg”#正确s[0]=“a”#语法错举例:append,添加元素到列表的末尾#定义变量A,默认有3个元素A=['xiaoWang','xiaoZhang','xiaoHua']print("-----添加之前,列表A的数据-----")fortempNameinA:print(tempName)#提示并添加元素temp=input('请输入要添加的学生姓名:')A.append(temp)print("-----添加之后,列表A的数据-----")fortempNameinA:print(tempName)举例:insert,插入列表元素到指定位置前面a=[0,1,2]print(a)a.insert(1,3)print(a)举例:使用extend扩展列表,将指定列表的所有元素一一append到当前列表a=[1,2]b=[3,4]a.append(b)#只追加一个字列表元素print(a)a.extend(b)#将b列表的元素一一追加到aprint(a)在列表中删除元素列表元素的常用删除方法有三种,具体如下:del:根据下标进行删除remove:根据元素的值进行删除pop:删除最后一个元素举例:del删除列表指定位置的元素movieName=['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']print('------删除之前------')fortempNameinmovieName:print(tempName)delmovieName[2]print('------删除之后------')fortempNameinmovieName:print(tempName)举例:remove,按元素值删除列表元素,指定值不存在则报错!movieName=['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']print('------删除之前------')fortempNameinmovieName:print(tempName)movieName.remove('指环王')print('------删除之后------')fortempNameinmovieName:print(tempName)举例:pop,删除/弹出列表最后一个元素movieName=['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']print('------删除之前------')fortempNameinmovieName:print(tempName)movieName.pop()print('------删除之后------')fortempNameinmovieName:print(tempName)列表的排序可以通过下面两个方法实现:sort方法:列表的元素按照特定顺序排列。reverse方法:将列表逆置,即首尾颠倒。列表的排序操作例:列表排序a=[1,4,2,3]a.reverse()print(a)a.sort()print(a)a.sort(reverse=True)#注意True的第1个字母要大写,False同样print(a)补:三个python函数,len,min,max#函数:lenminmaxteam=['Tom','Jack','Rose','Homes','Alva','Bill','Henry','Richard','Paul','Mike']print(len(team))#返回列表的元素个数print(min(team))#返回列表中元素的最小值
print(max(team))#返回列表中元素的最大值
补:列表的其他操作
list.clear():删除列表中的所有元素
list.index(x):返回列表中值为x的元素的位置索引,若不存在则出错。list.count(x):返回x在列表中出现的次数dela[x:y],按范围删除列表元素,删除位置从x到y-1的列表元素补:示例代码ls=[2,4,3,2,3,3,3,2,4,3,6,7,8,6,6,4,6,7,7,8,9]print("2的出现次数",ls.count(2))print("3的出现次数",ls.count(3))print("6的位置",ls.index(6))print("删除前",ls)dells[0:3]print("删除后",ls)复习上次课内容第5章实验-列表1:1、已知info=[1,2,3,4,5],请通过两种编程方法,将列表变成info=[5,4,3,2,1]。2、列表ls=[1,6,3,4,8,9,5,6,7,8],求列表中所有元素值的和3、列表ls=[1,2,6,4,5,2,2,4,5,7,8,2,3,4,7,6,5],请编写一个程序,删除列表中的重复元素。提示:循环,使用count判断当前元素出现次数是否大于1,是则删除4、已知一个列表存储了多个整数,请编写函数,删除列表中的素数。#info=[1,2,3,4,5],请通过两种编程方法,将列表变成info=[5,4,3,2,1]。info=[1,2,3,4,5]info.reverse()print(info)info=[1,2,3,4,5]info.sort(reverse=True)print(info)#列表ls=[1,6,3,4,8,9,5,6,7,8],求列表中所有元素值的和ls=[1,6,3,4,8,9,5,6,7,8]sum=0forninls: sum=sum+nprint(sum)ls=[1,6,3,4,8,9,5,6,7,8]sum=0num=len(ls)forninrange(0,num): sum=sum+ls[n]print(sum)ls=[1,6,3,4,8,9,5,6,7,8]print(sum(ls))#列表ls=[1,2,6,4,5,2,2,4,5,7,8,2,3,4,7,6,5],请编写一个程序,删除列表中的重复元素ls=[1,2,6,4,5,2,2,4,5,7,8,2,3,4,7,6,5]length=len(ls)n=0whilen<length: ifls.count(ls[n])>1: print("remove-",ls[n]) dells[n]#删除后当前位置元素变了,继续检查当前位置的列表元素
length=length-1#列表长度-1 else:
n=n+1#检查下一个列表元素print(ls)#已知一个列表存储了多个整数,请编写函数,删除列表中的素数。ls=[6,3,4,8,9,5,7,8,10,11,12,13,14,15,16,17,19]print(ls)num=len(ls)n=0whilen<num: #判断ls[n]是否是素数
isPrime=True forxinrange(2,ls[n]): ifls[n]%x==0: isPrime=False break ifisPrime:#是素数,要删除
print(ls[n]) dells[n] num=num-1 else: n=n+1print(ls)过渡页01列表概述02列表的循环遍历03列表的常见操作04列表的嵌套05元组06字典04列表的嵌套列表的嵌套指的是一个列表的元素又是一个列表。
列表的嵌套schoolNames=[['北京大学','清华大学'],
['南开大学','天津大学','天津师范大学'],
['山东大学','中国海洋大学']]补:列表的嵌套-矩阵matirx=[[11,12,13],[21,22,23],[31,32,33]]111213212223313233#矩阵求和matrix=[[11,12,13],[21,22,23],[31,32,33]]sum=0forlsinmatrix: foriteminls: sum=sum+itemprint(sum) sum=0forrowinrange(0,len(matrix)): forcolinrange(0,len(matrix[row])): sum=sum+matrix[row][col]print(sum)已知某学校有3个办公室和8名教师,请编写一个程序,完成教师和办公室的随机分配。要完成以上要求,可以按照以下步骤来设计程序:(1)定义一个包含3个空列表的列表offices,该列表中每个空列表代表空办公室,下标代表办公室的编号;(2)定义一个列表names,该列表中存储8位教师的姓名;(3)遍历names取出每个教师的姓名,之后再随机选取一个代表办公室的空列表,将教师姓名添加到里面。(4)输出每个办公室列表的信息。接下来,按照上述要求编写程序实现。#程序:importrandom#导入提供随机数操作的模块random#定义一个列表用来保存3个办公室offices=[[],[],[]]#定义一个列表用来存储8位老师的名字names=['A','B','C','D','E','F','G','H']i=0fornameinnames:index=random.randint(0,2)#调用random.randint函数获取随机数offices[index].append(name)i=1#以下代码显示分配结果fortempNamesinoffices:print('办公室%d的人数为:%d'%(i,len(tempNames)))i+=1fornameintempNames:print("%s"%name,end='')print(“-”*20)#随机分配的,程序的输出结果每次都会不--样print(offices)过渡页01列表概述02列表的循环遍历03列表的常见操作04列表的嵌套05元组06字典05元组什么是元组Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。tup1=('physics','chemistry',1997,2000)tup2=(1,2,3,4,5)tup3=("a","b","c","d“)元组的相关操作1.访问元组tuple=('hello',100,4.5)print(tuple[0])print(tuple[1])print(tuple[2])元组可以使用下标索引来访问元组中的值
元组的相关操作2.元组不允许修改元组tup1=(12,34.56);tup2=('abc','xyz')#以下修改元组元素操作是非法的。tup1[0]=100元组的相关操作3.元组的遍历a_turple=(1,2,3,4,5)fornumina_turple:print(num,end="”)元组的相关操作4.元组的内置函数方法元组可以使用下标索引来访问元组中的值描述len(tuple)
计算元组元素个数max(tuple)
返回元组中元素最大值min(tuple)
返回元组中元素最小值tuple(seq)
将列表转为元组list(元组)将元组转为列表tuple()相当于冻结一个列表,而list()相当于解冻一个元组t=(1,2,3,4,5)print(t)ls=list(t)print(ls)t2=tuple(ls)print(t2)补:元组的作用第一:tuple是一个不可变的list第二:python支持多返回值,经常使用tuple来实现函数的多返回值过渡页01列表概述02列表的循环遍历03列表的常见操作04列表的嵌套05元组06字典06字典字典介绍字典是一种存储数据的容器,它和列表一样,都可以存储多个数据。stu={"name":"张三","sex":"f","address":"北京","age":18}每个元素都是由两部分组成的,分别是键和值。‘name’为键-key,‘张三’为值-value。注意,键名-key不能重复!否则后面的定义覆盖前面的定义字典的常见操作1.根据键访问值-根据key获取对应的valueinfo={‘name’:‘张三','id':100,'sex':'f','address':’北京'}print(info['name'])print(info['address'])注意:如果使用的是不存在的键,则程序会报错。说明:序号不重要了,一般按key访问字典字典的常见操作如果我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值。
info={‘name’:‘张三’,‘id’:100,‘sex’:‘f’,‘address’:‘北京’}
age=info.get(‘age’)
print(age)#‘age’键不存在,所以age为None
print(type(age))
age=info.get(‘age’,18)#若info不存在‘age’,返回默认值18
print(age)字典的常见操作2.修改字典的元素info={‘name’:‘张三’,‘id’:100,‘sex’:‘f’,‘address’:‘北京’}
newId=input('请输入新的学号')info['id']=int(newId)print('修改之后的id为:%d'%info['id'])字典的常见操作3.添加字典元素info={'name':'班长','sex':'f','address':'地球亚洲中国北京'}newId=input('请输入新的学号')info[‘id’]=newId#直接添加即可,不用append追加print(info)直接添加,不用考虑元素序号字典的常见操作4.删除字典元素del:用于按key删除字典元素;clear:只是清空字典中的数据,字典还存在,只不过没有元素。
info={'name':'班长','sex':'f','address':'地球亚洲中国北京'}print('删除前,%s'%info['name'])delinfo['name']print('删除后,%s'%info['name'])info={'name':'班长','sex':'f','address':'地球亚洲中国北京'}print(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考铁路题材语文题目及参考答案
- 2026信息安全风险评估与控制专项训练
- 2026年幼儿艺术欣赏与创作能力测试卷
- 2026年金融伦理与职业道德测试
- 2026年基础护理学基础护理操作技能模拟试题
- 2026年电子技术基础理论模拟试题
- 2026年绿色出行理念普及考试卷
- 2026年专升本英语阅读理解专项训练
- 2026年天津市人教版五年级语文下册第4单元课后练习题
- 2026年建筑工程施工组织与管理模拟试题
- 2025年法院司法辅助人员真题附参考答案详解
- 2026乐山市市中区国有企业第二批社会招聘6人考试备考试题及答案详解
- 2026年渠县人力资源和社会保障局增量政策性岗位招募175人笔试备考试题及答案详解
- 2026宁夏中卫市海原县属国有企业领导人员招聘9人考试参考题库及答案详解
- 2022 低环境温度空气源多联式热泵(空调)机组
- 2026新版三年级上册语文暑假课文预习完整版
- 公司财务管理制度完整范本
- 2023版MRI临床应用安全专家共识课件
- 2025四川省夹金山国有林保护局有限公司招聘6人笔试历年参考题库附带答案详解
- 2026年审计系统公文写作规范考试题
- 2026年农商银行网络运维岗位题库
评论
0/150
提交评论