




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基本数据结构课标梳理教材重点课标要求学业质量水平基本数据结构掌握字符串、列表、字典等基本数据结构的使用方法2-2教材研析1.程序计算时,需要根据数据之间的逻辑关系和处理任务的要求,将各种数据组合成具有一定结构的复合体。如下某数据库的“课程”数据表中的一条记录就是一个复合体。2.常用数据结构:字符串、列表、字典。
1字符串String1.概念:字符串是0个或多个字符组成的序列。2.要点:(1)字符串是不可变数据:即无法修改字符串的部分内容,必须修改全部的内容。(2)字符串是Python中最常用的数据类型。可以使用引号('或″或‴)来创建字符串。(3)创建字符串很简单,只要为变量分配一个字符串型的值即可。如:var2=″China2023!″(4)Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。3.求字符串的字符个数
函数描述范例len(seq)返回序列的长度len('Runoob')=64.访问字符串中的值:通过索引(“切片”)。(1)索引:标识每个字符在字符串中的位置。①正索引(左
右):0起始②负索引(左
右):-1起始(2)“切片”:使用方括号[]和索引实现从字符串中取子串。
①格式字符串“切片”的语法格式:字符串变量名[头索引:尾索引:步长]范例:取str中的“N”的表达式为str[2]·范例1:“切片”取字符串'Runoob'中的'u'和'un'>>>s='Runoob'>>>s[1:2:1]'u'>>>s[1:3]'un'·范例2:“切片”取字符串'Runoob'中的'uob'>>>s='Runoob'>>>s[1::2]'uob'·范例1:逆向“切片”取字符串'Runoob'中的'n'和'nu'>>>s='Runoob'>>>s[-4:-5:-1]'n'>>>s[-4:-6:-1]'nu'·范例2:逆向“切片”取字符串'Runoob'中的子串'bn'>>>s='Runoob'>>>s[-1:-4:-3]'b'>>>s[-1:-5:-3]'bn'典例1变量a指向字符串对象'Python',从该字符串中取'Pn',表达式为______________________。a[0:6:5]或a[:6:5]或a[::5]典例2变量a指向字符串对象'Python',正向取该字符串中的全部字符,表达式为___________或_________或________或______或_____。a[0:6:1]a[:6:1]a[::1]a[::]a[:]典例3变量a指向字符串对象'Python',逆向取该字符串中的全部字符,正确的表达式为_____________或___________或______________________。a[-1:-7:-1]a[:-7:-1]a[::-1](答案不唯一)5.Python字符串更新可以截取字符串的一部分并与其他字符串拼接。运行实例如下:典例4字符串变量s=″Helloworld″,如果想将字符串变量s中的字符″w″改成大写″W″,下列操作可行的是()A.s=s[0:6]+″W″+s[7::]B.s[6]=″W″C.s[7]=″W″D.s=s[1:7]+″W″+s[8::]解析
我们可以访问字符串中的单个字符,但却不可以对其进行修改,因此选项B,C是错误的,字符串的正索引是从0开始进行编号的,所以答案选A。A典例5有Python代码如下:a='ABCD'a[1]='W'print(a)则运行代码后,结果为________________。程序将出错
解析
代码:a[1]='W'无法执行,因为字符串不能修改部分内容,必须修改其全部内容。2列表List1.定义:列表是最常用的Python数据类型。它是一个由0个或多个元素组成的1个序列整体,序列中的每个值都有对应的位置值,称之为索引,第一个索引是0,第二个索引是1,依此类推。2.要点:(1)列表是可变数据。(2)列表的数据项(元素)不需要具有相同的类型→异质。(3)列表的元素可以是数字、字符串等混合类型的数据,甚至可以是其他的列表(如下图所示)。3.创建列表:把逗号“,”分隔的不同的数据项使用方括号“[]”括起来即可。如下所示:list1=['Google','Runoob',2023,2024]list2=[1,2,3,4,5]list3=[″a″,″b″,″c″,″d″]list4=['red','green','blue','yellow','white','black']范例:list1[1]表示列表list1中第2个元素('Runoob')。4.Python内建函数(1)确定序列的长度:len(列表名)(2)确定最大元素:max(列表名)(3)确定最小元素:min(列表名)(4)求数值型列表的和:sum(列表名)(5)求列表中某个元素出现的次数:列表名.count(统计的元素)(6)将字符串转换为列表:list(字符串)范例>>>list2=[1,2,3,4,5]>>>max(list2)5>>>min(list2)1>>>len(list2)5>>>sum(list2)15>>>a=['中国','浙江','杭州','浙江']>>>a.count('浙江')>>>2>>>s='我爱我的祖国!'>>>list(s)['我','爱','我','的','祖','国','!']5.索引(访问列表中的元素):与字符串相似。通过索引列表可以进行截取、组合。(1)正向:从左侧头部开始,左侧第1个元素索引为0。(2)反向:从右侧尾部开始,右侧第1个元素索引为-1,往左为-2、-3、-4、…。6.切片:取列表中的一段值(1)正向切片(步长为正)①格式:列表名[头索引:尾索引:步长]②要点·头索引省略,表示从最前面索引为0的项开始切片。·尾索引省略,表示向右取完。·步长表示取值时相邻2项的跨度,省略时默认为1。典例6下图所示名为nums列表的第3、4、5、6、7个值正向切片,运行结果为[30,40,50,60,70],则切片表达式为____________________。nums102030405060708090⇩some_nums3040506070nums[2:7](答案不唯一)解析
观察图片可知切片元素的索引为2~6,根据“前闭后开”规则,所以切片表达式中头索引为2,尾索引为6的后一个元素索引7。典例7取列表nums的第3、5、7个值正向切片,运行结果为[30,50,70],则切片表达式为______________________。
nums102030405060708090nums[2:7:2](答案不唯一)解析
要取的值跨度为2,所以步长为2;切片头索引和尾索引的确定同上典例6。典例8取列表nums的第7个值往前到第1值的正向切片,运行结果为[10,20,30,40,50,60,70],则切片表达式为____________________________________________。
nums[0:7:1](或nums[:7:1]或nums[:7:]或nums[:7])解析
第1个值的索引为0头索引为0(可以省略);第7个值的索引为6,“前闭后开”
尾索引为7;相邻2元素跨度为1步长为1(可以省略)。(2)逆向切片(步长为负)①格式:列表名[头索引:尾索引:步长]②要点·头索引省略,表示从最右面索引为-1的项开始切片。·尾索引省略,表示向左取完。典例9取列表values的第5、4、3个值逆向切片,运行结果为['white','yellow','blue'],则切片表达式为____________________________。values[-2:-5:-1](答案不唯一)解析
values[-2:-5:-1]这个答案使用的是负索引的逆向切片,第5个值的反向索引是-2头索引为-2;第3个值的反向索引是-4,根据“前闭后开”规则,尾索引为其左侧元素索引-5;逆向切片向量2元素跨度为1步长为-1。
values[-2:-5:-1]。values[4:1:-1]这个答案使用的索引是正索引的逆向切片。典例10取values列表的第53个值跨度2逆向切片,运行结果为['white','blue'],则切片表达式为__________________________。values[-2:-5:-2](答案不唯一)解析
相邻2元素的跨度为2步长为-2。
典例11取values列表的第51个值跨度1逆向切片,运行结果为['white','yellow','blue','green','red'],则切片表达式为________________________。
values[-2:-7:-1](答案不唯一)解析
向左取完,所以尾索引为-7或者省略(使用正向索引的逆向切片时,头索引为4,尾索引省略)。典例12取values列表的第63个值跨度1逆向切片,运行结果为['black','white','yellow','blue'],则切片表达式为____________________________。
values[-1:-5:-1](答案不唯一)解析
向右取完,所以头索引为-1或者省略(使用正索引的逆向切片时,头索引为最右侧元素正索引值5,根据“前闭后开”规则,尾索引为第3个元素的左侧元素索引值1)。典例13取values列表所有值的逆向切片,运行结果为['black','white','yellow','blue','green','red'],则切片表达式为________________________________。
values[-1:-7:-1](答案不唯一)解析
使用负索引时,头索引为-1或者省略。尾索引为最左侧元素索引值-6的下一个索引值-7,或者省略。相邻2元素跨度为1,逆向切片,步长为-1。7.更新列表(1)对列表的数据项进行修改。格式:列表名[元素索引值]=元素值。典例14有如下Python程序段:list1=['Google','Runoob',1997,2000]list1[2]=2023print(list1)执行后,输出的结果为____________________________。['Google','Runoob',2023,2000]解析
list1[2]=2023是将列表中索引为2的元素(第3个元素)替换为2023,所以print函数输出列表时,原来第3个元素的值从1997变为2023。(2)添加列表项。使用append()方法往列表尾部添加一个新元素。格式:列表名.append(元素值)。典例15有如下Python程序段:list1=['G','R','T']list1.append('B')print(list1)执行后,输出的结果为______________。['G','R','T','B']解析
list1.append('B')是在原列表的最后添加一个新的元素'B'。(3)插入列表元素。格式:列表名[插入位置索引:插入位置索引]=元素值。往当前列表的某个位置插入列表或字符串时,被插入列表的每项、字串的每个字符都会作为list1的一个元素,而不会整体插入。(4)列表拼接。使用脚本操作符“+”,在现有列表尾部拼接另一个列表对象,格式:列表名=列表名+拼接列表对象(或者“拼接列表名”)。典例16若list1=[1,2,3],list2=[4,5],则list1+list2的结果是______________。
[1,2,3,4,5]解析
符号“+”的作用是将list2拼接于list1尾部。
典例17火柴棍游戏。用火柴棍拼成数字0~9,具体拼法如图所示:编写Python程序实现:运行程序时,输入任意两位正整数,输出所需火柴棍的数量。完善下列代码:num=int(input(″请输入一个两位正整数:″))match=″6255456376″a=num%10b=①________count=②_______________________print(″共需火柴棍:″,count)结合代码,输入一个两位正整数,输出所需火柴棍数量最多,则输入的两位正整数为③____。
num//10int(match[a])+int(match[b])88解析
本题考查运算符及列表的综合应用。a、b分别表示所输正整数个位和十位的数字,故b=num//10;列表元素的访问,第1个元素的索引号为0,对应数字0所需火柴棍的数量,所以该两位正整数对应火柴棍的总数量为int(match[a])+int(match[b]);从match=“6255456376”可知数字8使用火柴棍的数量最多,确定答案为88。(5)重复列表。使用脚本操作符“*”重复列表。格式:列表名*重复的遍数。典例18写出下列Python语句的输出结果:print(['a','b']
3)①________________________print([1,2,3]
3)②________________________['a','b','a','b','a','b'][1,2,3,1,2,3,1,2,3]
解析
脚本操作符“
”用于重复列表,所以['a','b']
3是将列表['a','b']重复了3遍;[1,2,3]
3是将列表[1,2,3]重复了3遍。(6)嵌套列表。在主列表里嵌套其他子列表。格式为:主列表名=[子列表1,[子列表2,子列表3,……],……]★取子列表中某个元素。格式为:主列表名[主列表中子列表相应的索引值][所取元素在子列表中的索引值]典例19结合上图,写出下列Python语句的输出结果:print(x[1])①_____________print(x[1][2])②_______[1,2,3]3解析
语句x=[a,n]是将列表a和列表n嵌套在了列表x中,列表a作为x的第1个元素(索引为0),列表n是x的第2个元素(索引为1),print(x[1])是要输出列表x中索引值为1的元素,即列表n;print(x[1][2])是要输出列表x中索引值为1的元素(列表n)中索引值为2的元素(第3个),即列表n[1,2,3]中的第3个元素3。(7)检查成员。使用成员运算符“in”/“notin”检查对象是/不是列表成员。典例20有如下Python程序段:a=['a','b','c']n=[1,2,3]a=a+nprint(2ina,'b'notinn)执行后,输出的结果为___________。TrueTrue解析
语句a=a+n用于将列表n中的元素拼接在列表a的后面,a列表为['a','b','c',1,2,3],所以2是a的成员,表达式“2
in
a”的值为True;'b'不是列表n
[1,2,3]中的成员,所以表达式“'b'
not
in
n”的值为True。3字典Dictionary1.定义:字典是由0个或多个元素组成的序列。每个元素是一个键值对,每个键值对的键和值之间用冒号“:”分隔,相邻两个键值对之间用逗号“,”分隔,整个字典包括在大括号{}中。
3.特点(1)字典是可变数据。(2)键和值是一一对应的。(3)一个字典中,键必须是唯一的,但值则不必
同一个值可以对应多个键,但不允许同一个键出现多次,若创建时同一个键被赋值多次,则记录其最后1个值。(4)值可以取任何数据类型,但键必须是不可变的,如字符串,数字等,而不能用列表等可变对象。4.访问字典里的值:字典名[与访问值相应的键名]。国家电网25解析
inf['单位']是访问名为“inf”的字典中键为“单位”的值“国家电网”(print函数输出结果时,字符串不带引号)。inf['年龄']同理。典例22有如下Python程序段:color={'R':210,'G':120,'B':80,'R':245}print(color['R'])执行后,输出的结果为_____。
245解析
字典中,键必须是唯一的,不允许同一个键出现多次,若创建字典时同一个键被赋值多次,则记录其最后1个值。字典color中,键“R”出现了2次,记录它第2次的值245。5.修改某个键的值格式:字典名[要修改的键名]=新值典例23有如下Python程序段:color={'G':120,'B':80,'R':245}color['R']=198print(color['R'])执行后,输出的结果为_____。198解析
语句“color['R']=198”将键“R”的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理课题申报书模板
- 2025年财务知识更新试题及答案
- 项目管理考试成功通过的心态与策略试题及答案
- 2025年理财师考试个案分析试题及答案
- 云南省玉溪市第一中学2025届高考语文倒计时模拟卷含解析
- 2025年财务分析工具运用试题及答案
- 资格认证考试复习的心态管理技巧试题及答案
- 注册会计师考试2025年衍生工具对企业财务风险的影响试题及答案
- 金融市场中资金流动的考试试题及答案
- 会计专业知识创新试题及答案
- 急诊科小讲课脑卒中
- 竞聘急诊科护士长
- 客运架空索道应急救援规范DB41-T 1453-2017
- 粤教版四年级劳动与技术 第二单元 小泥巴变变变 活动2 泥塑杯子 教案
- 第二届全国设备管理与智能运维职业技能竞赛(电气设备点检员)考试题库(含答案)
- 江苏省常州市2024年中考物理试题【附参考答案】
- 2023-2024学年江苏省南京市六校联合体高一下学期5月期中考试化学试题
- 新解读《JTG 5120-2021公路桥涵养护规范》
- 机房维保巡检服务报告
- 第十三章-印花税
- 二手房公积金贷款合同书范本(2024版)
评论
0/150
提交评论