版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ADDINCNKISM.UserStyle教案首页课序8学时2周次教学内容第5章容器类型---列表、元组教学目标知识理解序列结构的特点,掌握列表的构造、增加元素、删除元素、排序和反转等方法,能够合理编写切片操作,学会列表推导式的编写,理解列表的赋值、浅复制和深复制的特点。学会元组的定义、元素的访问方法,掌握生成器表达式的编写。能力能根据实际问题合理使用列表推导式、生成器表达式、切片、列表和元组的方法,能够区分列表和元组的不同,根据程序需要合理选择列表和元组。素养树立精益求精的工匠精神和严谨求实的职业素养。教学重点列表和元组的定义、切片、列表推导式、生成器表达式、三种复制方式、列表元素的增加和删除,列表的排序和反转教学难点切片、深复制和浅复制、原地操作、列表的自动扩展和收缩、列表推导式、列表的排序教学方法手段多媒体+项目式教学教学组织方式1.内容导入2.知识点讲解3.综合案例与纠错4.小结5.作业课后反思加强以下内容的演示:切片、负数索引、append()、extend()、insert()、remove()、pop()等方法,嵌套列表的多层下标访问,列表赋值。教学环节课程引入新课讲解课堂讨论每课小结布置作业时间分配(以分钟计算)575532(以2课时为单元)教学设计一、内容导入学生期末成绩管理:成绩录入、存储、排序、计算平均分、最高分、最低分。二、内容介绍(一)序列结构一组有序数据的容器,类似于C语言的数组。包括列表、元组和字符串。序列元素的访问使用整数下标,可以采用正向索引(0~元素个数-1)、也可以采用反向索引(-1~-元素个数)。(二)列表的定义使用[]作为界定符,元素之间使用,分割,也可以使用list()函数,将一个可迭代对象转换为列表。(三)列表的复制直接赋值会创建一个新列表,新列表指向源列表。修改一个列表会影响到另一个列表。浅复制copy()区分不同情况,如果修改的是不可变数据类型,如数值型、字符串、元组等,不影响另一个列表;如果修改的是可变数据类型,并且使用该数据类型提供的方法,那么就会影响另一个。深复制copy.deepcopy()修改一个不会影响另一个,因为复制的是实际值,不是引用。示例:a=[1,2,3,"welcome",["C","Java","PHP"]],分别使用三种复制方式进行演示,并提供内存指向展示。(四)列表元素的增加和删除1.元素增加append(x)增加一个对象x,可以是任意数据类型,将对象x作为一个整体增加到列表末尾;extend(x)增加一个对象x,将一个对象x中的所有元素增加到列表末尾;insert(index,x)在任意位置index处增加一个对象x。不建议在列表非尾部位置增加元素,会导致数据的大量移动,效率较低。元素的删除remove(x)删除首次出现的x,要删除所有就需要使用循环,但是使用不当会导致删除不全,原因就是列表的自动收缩机制造成的。要删除所有的x,需要从后往前进行删除,或者使用切边,或者使用while循环。pop()方法删除并返回指定位置(默认为最后一个)上的元素,如果给定的下标超出了列表的范围则抛出异常。使用del命令删除指定位置的元素。板书分析以下程序问题:x=[1,2,1,2,1,1,1]foriinx: ifi==1: x.remove(i)print(x) #结果为[2,2,1](五)列表的排序和反转sorted()函数排序后会生成新列表,原列表不会改变。sort()方法用于按照指定的规则对列表中所有元素进行原地排序,该操作会改变原来列表元素的顺序。reverse()方法用于将列表所有元素反转,该方法属于原地操作,原列表会发生变化。关注sort方法和sorted函数的reverse参数和key参数,一个指定排序方法,默认升序,reverse=True时,采用降序,key一般是函数,指定排序依据。a=list(range(8,20)) #创建列表b=sorted(a,reverse=True) #降序a.sort(key=str) #排序依据的是字符串编码的大小(五)切片切片语法:“序列名[start:end:step]”,返回序列的一个片段。第1个参数start表示切片的开始位置,当step为正整数时,start默认为0;第2个参数end表示切片的截止(不包含)位置,当step为正整数时,end默认为列表的长度;第3个参数step表示切片的步长,默认为1。当step为正整数时,表示正向切片。start为0时可以省略,当end为列表长度时可以省略,当step为1时可以省略,省略步长时,还可以同时省略最后一个冒号。当step为负整数时,表示反向切片。这时start位置应该在end位置的右侧,否则会返回空列表。start默认为-1,end默认为列表第1个元素前面的位置(-len(list_name)-1)。其中start和end表示序列元素的索引号。切片作用:获取列表的部分元素,修改/增加列表元素numbers=[1,2,3,4,5,6,7,8]slice1=numbers[2:-3] ;slice2=numbers[0:7:-1];num=[1,2,3,4,5];num[len(num):]=[6,7,8];num[:3]=[](6)列表推导式列表推导式允许用一行代码对一个可迭代对象(如列表、元组、集合等)中的每个元素进行操作,并生成一个新的列表。列表推导式的语法非常简洁,可以替代很多使用for循环的场景,使代码更加可读和优雅。列表推导式语法形式为:[表达式for变量1in可迭代对象1if条件表达式1for变量2in可迭代对象2if条件表达式2for变量3in可迭代对象3if条件表达式3...]a=[1,2,3]b=[4,5,6]c=[x*yforxinaforyinb] print(c) (7)列表成员测试、比较和统计使用in/notin运算符可以判断一个元素是否在列表中。关系运算符(<、>、==、!=、<=、>=)可以用来对列表进行比较。先比较两个列表的第1个元素,如果两个元素相同,则继续比较后面两个元素;如果两个元素不同,则返回两个元素的比较结果;重复这个过程,直到有不同元素或者比较完所有元素为止。列表对象的count()方法用来统计指定元素在列表中出现的次数。元组定义和删除元组(tuple)属于有序序列,支持使用双向索引访问其中的元素。元组属于不可变(immutable)序列,不可以直接修改元组中元素的值。将元组的元素放置在一对圆括号“()”内,以逗号分隔,赋值给变量,即可创建元组。也可以使用tuple()函数将列表、元组、range对象、字符串或其它类型的可迭代对象转换为元组。当不再使用时,使用del命令删除整个元组。元组方法使用下标访问元组的元素,支持两个方法count()和index(),提供in和notin运算符来判断元素是否在元组中,提供切片操作,使用len()计算元组的大小等。生成器表达式与列表推导式最大的不同是,生成器推导式的结果是一个生成器对象。生成器对象类似于迭代器对象,具有惰性求值的特点,不会一次性将所有值存储在内存中,而是按需生成值。它在处理大数据时,可以节省内存,同时保持代码的简洁性和可读性。使用生成器对象的元素时,可以根据需要将其转化为列表或元组,也可以使用生成器对象的__next__()方法或者内置函数next()进行遍历,或者使用for循环来遍历其中的元素。当所有元素访问结束以后,如果需要重新访问其中的元素,则必须重新创建该生成器对象。g=((i+2)**2foriinrange(5)) #创建生成器对象,print(g) gList=list(g) #将生成器对象转换为列表print(gList) #输出:[4,9,16,25,36,49,64,81,100,121]三、内容小结
总结列表和元组的特点、使用场合、系统提供的方法。四、作业1.编写一个Python程序,实现以下功能:创建一个整数列表,包含5个元素;将列表中的每个整数转换为对应的八进制形式,并打印转换后的八进制字符串。2.有一个包含若干整数的列表numbers=[3,5,1,4,2],使用列表推导式生成一个新列表,其中包含numbers中每个元素的平方,完成numbers列表的排序打印,反转numbers列表,并打印反转后的结果。课堂组织【教师活动】结合列表定义、增加和删除元素、排序等易错点进行案例设计和板书推导【学生活动】编写程序:输入一组学生成绩,按照从高到低进行排序。随堂练习:设计10道关于列表和元组的测试题,要求学生进行线上测试,针对出现的错误,进行详细分析和讲解ADDINCNKISM.UserStyle教案首页课序9学时2周次教学内容第5章容器类型——字典、集合、元组封装与序列拆封教学目标知识理解字典和集合的哈希特性,掌握字典的定义、元素增加、修改和删除,掌握集合定义、元素增加、删除和集合的交集、并集、差集以及对称差集。理解元组的封装和序列的拆封。能力能够正确定义和使用字典提供的方法来编程,学会集合的定义和方法的使用,能够合理选择字典和集合来存储数据。素养培养精益求精的工匠精神和科学家的探索精神教学重点字典定义、字典元素增加、修改和删除,字典的排序;集合定义、集合元素增加、删除,多元赋值和多重赋值教学难点字典键键值对的内涵、字典元素的访问、增加和修改,集合的运算教学方法手段讲授法+案例教学+讨论法+启发式教学教学组织方式1.内容导入2.知识点讲解3.案例实战、测试4.小结5.作业课后反思嵌套字典访问、多层取值、字典与集合的底层逻辑(哈希表)过于抽象,需要进一步演示。对字典vs列表vs集合三者的适用场景对比讲解不足,学生在实际问题中不知道该选哪种结构;教学环节课程引入新课讲解课堂讨论每课小结布置作业时间分配(以分钟计算)575532(以2课时为单元)教学设计一、内容导入单位做了一个工资表格,要实现数据的存储。二、内容介绍(一)字典概述字典(dictionary)是包含若干“键:值”元素的无序可变容器对象,字典中的每个元素包含用冒号分隔开的“键”和“值”两部分,表示一种映射或对应关系,不同元素之间用逗号分隔,所有的元素放在一对大括号{}中。字典中元素的“键”可以是Python中任意不可变数据,例如整数、实数、复数、字符串、元组等类型等可哈希数据,但不能使用列表、集合、字典或其他可变类型对象作为字典的“键”。字典中的“键”不允许重复,“值”可以重复。字典创建和删除使用“=”将一个字典赋值给一个变量即可创建一个字典变量data={'国家':['富强','民主','文明','和谐'],'社会':['自由','平等','公正','法治‘],'公民':['爱国','敬业','诚信','友善']}使用内置类dict以不同形式创建字典keys=['a','b','c','d']values=[1,2,3,4]d=dict(zip(keys,values))#根据已有数据创建字典d=dict(name='Dong',age=39)#以关键参数的形式创建字典字典元素访问dict[键]:以“键”作为下标可以访问对应的“值”,若“键”不存在则抛出异常。get():dict.get(self,key,default=None,/)获取指定“键”对应的“值”,并且可以在“键”不存在的时候返回指定值。keys():dict.keys()返回字典的“键”。values():dict.values()返回字典的“值”。items(): dict.items()返回字典的“键”、“值”对。(四)字典元素添加、修改与删除若指定的“键”存在,表示修改该“键”对应的值;若指定的“键”不存在,表示添加一个新的“键:值”对。使用update()方法可以将另一个字典的“键:值”元素一次性全部添加到当前字典对象中,如果两个字典中存在相同的“键”,则以另一个字典中的“值”为准。aDict={'age':35,'name':'Dong','sex':'male'}aDict['age']=39#修改元素值aDict['address']='SDIBT'#添加新元素aDict.update({'a':97,'age':39})删除字典中指定的元素,可以使用del命令使用字典对象的pop()和popitem()方法删除元素(五)字典元素的排序字典是可以按照“键”或者“值”来进行排序。ddict={"a":10,"c":1,"b":100}#items()将字典的元素转换成了包含键值对元组的对象sorted(ddict.items(),key=lambdaitem:item[1]) sorted(ddict.items(),key=lambdaitem:item[0]) (六)集合特点集合(set)属于Python无序可变容器对象,使用一对大括号作为定界符,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,元素之间不重复。集合中只能包含数字、字符串、元组等不可变类型(或者说可哈希)的数据。集合对象的创建与删除直接将集合字面值赋值给变量即可创建一个集合对象。a={3,5} #创建集合对象a_set=set(range(8,14)) #把range对象转换为集合b_set=set([0,1,2,3,0,1,2,3,7,8]) #转换时自动去掉重复元素集合操作与运算集合元素增加与删除集合的add()方法可以增加新元素,如果该元素已存在则忽略该操作,不会抛出异常。update()方法用于合并另外一个或多个集合中的元素到当前集合中,并去除重复元素。pop()方法用于随机删除并返回集合中的一个元素,如果集合为空则抛出异常;remove()方法用于删除集合中的元素,如果指定元素不存在则抛出异常;discard()用于从集合中删除一个特定元素,如果元素不在集合中则忽略该操作;clear()方法清空集合删除所有元素。集合运算a_set=set([8,9,10,11,12,13])>>>b_set={0,1,2,3,7,8}>>>a_set|b_set#并集{0,1,2,3,7,8,9,10,11,12,13}>>>a_set&b_set#交集{8}>>>a_set-b_set #差集{9,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理神经系统护理
- 护理安全:细节决定成败
- 供应商质量评估与管理手册
- 合作项目预算超支原因分析说明函(4篇)
- 技术协助与专项服务承诺书(3篇)
- 2026年食品营养科普自媒体创作者职业发展
- 2026年有限空间作业事故救援技术
- 2026年霍兰德职业兴趣量表解读
- 2026年园区环境风险预警与应急体系建设
- 2026年绿色金融产品申请中的供应链数据准备
- 儿童狂犬病暴露后预防专家共识(2025年版)
- 2026年广东交通职业技术学院单招职业技能测试题库及完整答案详解
- 肿瘤终末期患者便秘与腹泻症状管理方案
- 2025-2030中国抽水蓄能行业深度评估及竞争格局展望分析研究报告
- 2026届语文二轮复习:专题03 文学评点题(复习讲义)(解析版)
- 内痔硬化剂注射治疗的护理个案
- 地质调查员(地质灾害方向)职业技能竞赛模拟试卷及答案
- 2025年超星尔雅学习通《口腔医学导论》考试备考题库及答案解析
- 物业维修管理流程标准操作
- 雨课堂在线学堂《三江源生态》单元考核测试答案
- 国家开放大学《机械制造工艺学(本)》形考任务1-4大作业答案
评论
0/150
提交评论