第三章 课时2 Python基本数据结构 教案 浙教版(2019)必修1(课件 学案 教案三份打包)

资源下载
  1. 二一教育资源

第三章 课时2 Python基本数据结构 教案 浙教版(2019)必修1(课件 学案 教案三份打包)

资源简介

课时2 Python基本数据结构
课时目标
1.掌握Python字符串、列表、字典三种基本数据结构的使用方法。2.能根据实际需求选用合适的数据结构存储数据。
一、字符串
字符串是用单引号(')、双引号(")或三引号(''')括起来的一个字符序列,起始和末尾的引号必须要一致。
1.字符串的特点
(1)字符串是不可变对象。即一旦创建了一个字符串,那么这个字符串的内容是不可改变的。
(2)通过索引来访问字符串中的字符。索引表示字符在字符串的位置,第一个元素的索引号是0,第二个元素的索引号是1,以此类推。
2.字符串的切片操作
通过字符串的切片操作可以获得字符串的一个子串。
格式为:字符串名[start:end:step]
step默认为1,表示返回下标从start到end-1的字符构成的一个子串。
二、列表
列表是由0个或多个元素组成的序列,其中的元素可以是数字、字符串等混合类型的数据,甚至是其他的列表。
1.列表的特点
(1)列表用[]表示,元素间用逗号分隔,不同类型的元素可以存储在同一列表中。
(2)列表的大小是可变的,可以根据需要增加或缩小。
(3)列表是可变对象。一个列表被创建后,可以直接修改列表中的元素值。
2.列表的访问
列表中的元素是通过索引来定位的,第一个元素的索引号是0。列表中的元素可以通过索引进行访问。
3.列表的切片操作
列表的切片形式为list[i:j:k],i为起始位置索引(包含),默认为0,j为终止位置索引(不含),默认至序列尾;k为切片间隔,默认为1。i,j,k使用默认值时可省略。如有一列表list1=["姓名","马小云","年龄",18,"身高",1.75],则list1[0:2]=["姓名","马小云"]。
4.列表的创建方法
创建名为list1的列表:list1=[元素1,元素2,…,元素n]
5.列表的常用函数
函数 功能
append(x) 在列表尾部添加元素x
remove(x) 在列表中删除元素x
insert(i,x) 在i位置插入元素x
pop(i) 删除i位置的元素
sort() 对列表中的元素进行升序排序
三、字典
1.字典特点
字典是键值对的集合,即字典中的每个元素包含两部分内容:键和值。
键通常用字符串或数值来表示,值可以是任意类型的数据,键必须是不可变对象,在字典中必须是唯一的。键和值两者一一对应,且每个键只能对应一个值。通过键可以找到与其有关的值,反之则不行。
键和值在字典中以成对的形式出现,键-值用冒号分隔,各个对之间用逗号分隔,所有这些都包括在花括号“{}”中。字典中的元素是没有顺序的,引用元素时以键为
索引。
2.字典的创建方法
创建名为dict1的字典:dict1={键1:值1,键2:值2,…,键n:值n}
3.字典的常见操作
操作命令或函数 功能
del dict1["x"] 删除键值为x的键值对
dict1.pop("x") 删除键值为x的键值对
dict1["x"]=1 添加(或修改)键为x值为1的键值对
dict1.update(dict) 批量更新
dict1.keys() 得到字典dict1所有的键
dict1.values() 得到字典dict1所有的值
dict1.items() 得到字典dict1所有的键值对
               
例1 某超市用13位数字标识商品信息,其中8~12位是表示商品名的代码,用字符串变量s存储商品的信息码(例如:s="9787100109796",商品名代码是"10979"),下列Python表达式中能取出商品名代码的是 (  )
A.s[-6:-1] B.s[7:11] C.s[8:12] D.s[7:-2]
答案 A
解析 本题考查字符串的切片。商品名代码位置为8至12位。而字符串的索引从0开始,在切片时终值取不到,切片序号为7:12。在索引序号为倒序的情况下,从-1开始,则切片序号为-6:-1。
变式训练1 字符串变量s中存有小李身份证号码(s="331004200608160037",其中7至14位“20060816” 代表出生日期)。若想提取小李身份证中的出生日期,下列Python表达式有错误的是 (  )
A.s[-12:-4] B.s[6:14] C.s[7:15] D.s[6:-4]
答案 C
解析 本题考查字符串的切片。7至14位对应的索引号为6至13,第14位也可以用索引号-4表示。
例2 在Python中若字符串s="ABC",有下列表达式:
①s[len(s)-1:0:-1] ②s[-1:-len(s)-1:-1] ③s[::-1] ④s[len(s)-1:-1:-1]
其中结果为"CBA"的是 (  )
A.①② B.①③ C.②③ D.③④
答案 C
解析 本题考查字符串的切片。-1表示字符串最后一个字符的位置。①中索引号为0的字符取不到。④中索引号为-1的取不到。
变式训练2 左右对称的字符串称回文串。若要判断字符串s是否为回文串,可以先找到s的中间位置mid=len(s)∥2;再采用切片操作取出s的左半部分left=s[0:mid];然后取出s的右半部分并反转,存储在变量right中;若left与right相等,则为回文串。则下列表达式能正确表达变量right值的是 (  )
A.s[mid::][::-1]
B.s[mid+1::] [::-1]
C.s[len(s)-1:mid:-1]
D.s[-1:-mid-1:-1]
答案 D
解析 本题考查字符串的切片。右半部分要从最后一个位置开始倒着取到mid的位置。AB选项表示方法不规范。C选项切片是一个左闭右开的区间,mid位置取不到。D选项-1表示最后一个位置,-mid表示从右往左的一半位置,若要取到该位置,需再加上步长。
例3 列表list1=[2,3,5,10,18,22,29],现在想要得到列表的最后一个元素29,下列选项中不能实现该功能的是 (  )
A.list1[6] B.list1[7] C.list1[-1] D.list1[6:7]
答案 B
解析 本题主要考查字符串索引及切片的内容,字符串列表正索引从0开始,负索引从-1开始,切片是为前闭后开区间,list1中只有7个数据,因此最后一个数据为list[6],不存在list[7],故答案应选择B。
变式训练3 若有列表a=[1,2,3,4,5],则下列表达式值为True的是 (  )
A.'1' in a B.5 in a C.[1] in a D.0 in a
答案 B
解析 本题考查的是Python中列表和“in”运算符。A选项,'1'是字符,不是数字,所以值为False;C选项,[1]是列表,不是a的成员,所以值为False;D选项,0不是列表a中的元素,所以值为False;5是列表a中的元素,所以5 in a的值为True,
因此,答案为B。
例4 已知s=["C++","Python","Java"],则s[1][2]的结果是 (  )
A."PythonJava" B."C++Python" C."+" D."t"
答案 D
解析 本题考查列表和字符串的切片。s[1]的值为"Python","Python"[2]的值为"t"。
变式训练4 已知list=["Word","for","sent","city","piano"],则list[3][2]的返回值为 (  )
A."e" B."o" C."t" D."a"
答案 C
解析 本题考查列表的相关知识。已知list=["Word,"for,"sent","city","piano"],list[3][2]取的是第4个字符串中的第3个字符,即list[3][2]="t"。
例5 已知字典dic存放学生的姓名和对应的语数英成绩,dic={"姓名":"小红","语文":101, "数学":118,"英语":132},现要在字典dic中增加一个键为“技术”,值为“97”的元素,下列语句正确的是 (  )
A.dic[技术]=97
B.dic["技术"]=["技术":97]
C.dic["技术"]=97
D.dic["技术"]={97}
答案 C
解析 本题主要考查字典的概念及操作。Python中字典中数据以键值对的形式存在,键值之间用冒号隔开,键值对之间用逗号隔开。读取字典的值、新建键值对和修改键值对方式均为:字典名[键]=值.
变式训练5 已知字典dict1={1001:"Mali",1002:"Jack",1003:"Rose",1004:"John"},现要将键为1002的值更新为"Alice",下列语句正确的是 (  )
A.dict1[1002]="Alice"
B.dict1[1002:"Jack"]=[1002:"Alice"]
C.dict1[1002]={"Alice"}
D.dict1[1]="Alice"
答案 A
解析 本题主要考查的是字典值的修改操作。对字典中存在的键值对赋值,新赋的值就会覆盖原有的值,这样即可改变字典中的键值对,因此答案为A。
例6 字典 data 中存储了如下数据:{"课程" :["舞蹈" , "Python" , "数学"], "地点":["舞蹈房", "计算机房", "教室"], "时长" :["60 分钟","40 分钟", "90 分钟"]},若将"数学"课的时长调整为"70 分钟",以下操作可行的是 (  )
A.data[2][2]= "70 分钟"
B.data["时长"][-1]= "70 分钟"
C.data[-1][2]= "70 分钟"
D.data["时长"][3]= "70 分钟"
答案 B
解析 本题考查字典的操作。字典某个键包含多个值,因此需用列表来表示。字典中键是无序的,但列表是有序的,可能采用索引来表示。数学学科的时长保存在时长键中,取出时长的方法为data["时长"],其对应的值有["60 分钟","40 分钟", "90 分钟"],而数学学科的索引为2或-1。
变式训练6 字典cj中存有小胡、小李和小夏同学某次考试的成绩数据,并且成绩数据按语文、数学、英语的科目顺序进行存放。已知cj={"小胡":[85,93,88],"小李":[88,82,78],"小夏":[90,75,89]},现要读取小李同学的数学科目成绩,下列表达式正确的是 (  )
A.cj[1][1] B.cj["小李"][3:5] C.cj["小李"][1] D.cj["小李"][2]
答案 C
解析 本题考查字典和列表的基本操作。小李同学的科目成绩cj["小李"],即[88,82,78],而数学学科的索引为1。
               
1.已知变量s="2022jiaxing",则表达式s[1:len(s)∥2]+s[2]*2的值是 (  )
A."20224" B"2026" C."022j22" D."022j4"
答案 C
解析 本题考查字符串的切片。len(s)∥2=5,即索引号为1-4的字符;s[2]值为"2",s[2]*2值为"22"。
2.已知motto="Beautifulisbetterthanugly.",得到切片"Beautiful"的表达式是 (  )
A.motto[1:9] B.motto[1:10] C.motto[0:8] D.motto[0:9]
答案 D
解析 本题考查字符串、列表的切片相关知识。切片的正索引是从“0”开始,且最后索引截止(不取)。
3.已知s="3.141592654",则s[4:6]+s[-1]返回值为 ( )
A."414" B."1594" C."154" D."19"
答案 C
解析 本题主要考查字符串索引及切片的内容,字符串列表正索引从0开始,负索引从-1开始,切片是为前闭后开区间,s[4,6]只包括索引为4、5的字符,故答案为C。
4.已知变量s="2022py",则表达式s[2]*2+s[-2::]的值是 (  )
A."22p" B."4py" C."22py" D."4p"
答案 C
5.已知变量s=["123","4567","789"],则表达式s[1][1::-1]*2+s[-1][1]的值是 (  )
A.'45458' B.'54548' C.'56568' D.'67678'
答案 B
解析 本题考查列表和字符串的切片。s[1]的值为"4567",[1::-1]中第2个参数省略,默认为0,因此s[1][1::-1]值为"54",再将其重复两次,s[-1]的值为"789",s[-1][1]的值为"8"。
6.下列Python表达式的值为True的是 (  )
A.123∥10%10**2==4
B."BH005"[:2]=="BH0"
C."st" in "student"
D.int(5.64)==6
答案 C
7.已知s="a,b,c,d,e,f",执行s[2:3]=" "后,s的值为 (  )
A."ab,c,d,e,f" B. "a,,b,c,d,e,f"
C."a,c,d,e,f" D.程序报错,无法执行
答案 D
8.若n='PythonPythonPython',则表达式n[3::3]的值为 (  )
A.'hPhPh' B.'pyt'
C.'tntntn' D.'nhynhynhy'
答案 A
9.已知变量 x='BigWorld',下列表达式的值为True的是 (  )
A.'big' in x B.x[3:-1]=='World'
C.x*3>'OK' D.x*2==x+x
答案 D
10.下列Python表达式值为True的是 (  )
A. "average"[3:5]== "er"
B.30%7+10∥2**3==3
C.abs(int(-4.95))==5
D.4 in range(4)
答案 B
11.若a="20230678",b=["2","4","6"],则表达式a[5:]+b[2:1:-1]*3的值是 (  )
A."24" B."696"
C."678666" D."0678444"
答案 C
12.以下Python表达式中,下列选项的值与其他三项不同的是 (  )
A.len("my name is james".split)
B.int(4.99)
C.sum([1,2,1,1])
D.max([1,2,3,4])
答案 C
13.已知字典dict1={1:"red",2:"green",3:"blue"},则dict1[2]的值为 (  )
A.green B."green"
C.blue D."blue"
答案 B
解析 本题主要考查的是字典。dict1是字典,dict1[2]表示的是键为2对应的值,键为2对应的值为"green",因此,答案为B。
14.使用字典Oil_dic={"92号":8.73,"95号":9.14}存储油价信息,经核实后92号油价是8.61,正确修改的语句是 (  )
A.Oil_dic[0]=8.61
B.Oil_dic[92号]=8.61
C.Oil_dic[1]=8.61
D.Oil_dic["92号"]=8.61
答案 D
15.Python中字典dict={"米饭":116,"苹果":53,"牛奶":54,"巧克力":589}存储的是不同食物的热量,程序中若要将其中牛奶的热量值改为60,可用的语句为 (  )
A.dict{"牛奶"}=60 B.dict["牛奶"]=60
C.dict[2]=60 D.dict={"牛奶":60}
答案 B
解析 本题考查字典的修改。dict是字典,dict["牛奶"]表示的是键为"牛奶"对应的值,选项B正确。
16.某超市部分商品的价格用Python存储在列表prices中,prices=[{"土豆":5,"黄瓜":6,"豆角":4},{"书包":40,"笔记本":7,"铅笔":2},{"果冻":12,"薯片":10,"酸奶":14}],若要访问果冻的价格,则正确的表达式为 (  )
A.prices[2]["果冻"] B.prices[3]["果冻"]
C.prices[2][1] D.prices[3][0]
答案 A
一、基础巩固
                
1.国际标准书号(International Standard Book Number),简称ISBN,是专门为识别图书等文献而设计的国际编号,ISBN书号的前三位为前缀号,一般为“978”或“979”。小周尝试用Python语言对ISBN书号中的前缀号进行提取,当ISBN书号s="978-7-5536-9027-8"时,以下表达式不正确的是 (  )
A.s[1:4] B.s[-17:-14]
C.s[0:3] D.s[:-14]
答案 A
解析 本题考查字符串的切片。
2.有如下Python程序段:
a="1357"
list1=["Car","Bus","Bike"]
list1[1]=a[1:3]
print(list1)
该程序段运行后的结果是 (  )
A.['Car','Bus','Bike']
B.['Car',35,'Bike']
C.['Car','35','Bike']
D.['Car','3','5','Bike']
答案 C
解析 本题考查字符串和列表的相关知识。对字符串作切片操作时,只能取结束位置所表示的索引号的前一个位置,所以a[1:3]所对应的子串为"35",赋值给列表list1[1]项,所以C选项正确。
3.已知s='abcdefgh',则s[1:5:2]+s[-1:-7:-2]的值是 (  )
A.'bdhfd' B.'bdfhfdb'
C.'achfd' D.'acehfdb'
答案 A
解析 本题考查Python字符串的切片。s[1:5:2]顺序步长为2,结果为"bd",s[-1:-7:-2]逆序步长为2,结果为"hfd",因此结果为A选项。
4.若a="3.1415926",b=[1,"5",11],则表达式a[-2:]+b[1]*2的值是 (  )
A."2655" B."36" C."92655" D."81"
答案 A
5.已知s='ilovepython',则s[1:6:2]+s[-2:-8:-2]的值是 (  )
A.'lvpotp' B.'lvptop' C.'lvpyto' D.'ioeyto'
答案 A
6.下列表达式中数值最大的是 (  )
A.len("12"*4) B.round(3.2,0)**2
C.int(32.9)%11 D. abs(-20)//3
答案 C
7.已知a=["a", "b","c",1,2,3],想要获取列表 a 中"b"和"c" 的切片,下列语句正确的是 (  )
A.print(a[b:c]) B.print(a[1:2])
C.print(a[1:3]) D.print(a[1:-4])
答案 C
8.下列语句在Python中不正确的是 (  )
A.a=b="123"+45
B.a=b=c=100
C.a,b=b,a
D.a,b="Hi",["Luck",6]
答案 A
9.下列表达式的值为True的是 (  )
A.int(8.9)B."happy"[1:3]=="app"
C.168∥10%10==8
D.2+5**2∥2!=15
答案 D
10.下列Python表达式的值为False的是 (  )
A.2**5>5**2 B.2 in ["2","5"]
C.5∥2==int(5/2) D.2%5!=1
答案 B
11.有字符串s="Congratulations",若对其中的元素进行s[1:4]访问,则结果为 (  )
A."Cong" B."Con" C."ongr" D."ong"
答案 D
12.已知列表list1=[3,4,"5",56],则表达式"print(5 in list1)"运行后结果为 (  )
A.True B.False C.1 D.0
答案 B
13.下列Python表达式中,与Len("信息满分")的值相同的个数是 (  )
①int("10",16)**1/2 ②abs(int(-4.1))
③4%5 ④"20220114"[7:]
A.1 B.2 C.3 D.4
答案 B
14.已知列表List1=[1,3,5,2,4],要在列表List1中的最前面添加元素9,则下列操作可行的是 (  )
A.List1=9+List1
B.List1="9"+List1
C.List1=[9]+List1
D.List1=List1+[9]
答案 C
解析 本题考查的是列表操作。在列表中添加元素,元素要用[]括起来,并且要添加在列表List1的最前面,因此操作可行的是List1=[9]+List1,答案为C。
15.某超市用13位数字标识商品信息,其中8~12位是表示商品名的代码,用字符串变量s存储商品的信息码(例如:s="9787100109796",商品名代码是"10979"),下列Python表达式中能取出商品名代码的是 (  )
A.s[-6:-1] B.s[7:11]
C.s[8:12] D.s[7:-2]
答案 A
16.下列关于Python基本数据结构的描述,正确的是 (  )
A.字符串不能由0个字符组成,只能由多个字符组成
B.不同类型的元素可以存在于同一列表中
C.列表元素能通过索引来定位而字符串不能
D.字典创建后不能进行增删操作
答案 B
17.已知x="苹果,50",y=["苹果",50],z={"苹果":50},下列Python表达式的值为True,正确的是 (  )
A.x[-4::-1]==y[0]
B.x[3:5]==y[1]
C.y[1] in z
D.z[y[0]]==50
答案 D
18.下列关于Python表达式描述错误的是 (  )
A."apple"[1]>"banana"[3]的结果为True
B.变量s的值为"ABC",s[:]>s[::-1]的结果为True
C.30%7*4+7∥3**3 的值为 8
D.{1:2,2:1}=={2:1,1:2}的结果为True
答案 B
19.已知字典dict1={101:"张三",102:"李四",103:"王五"},下列语句执行后会出现错误的是 (  )
A.print(dict1[101])   B.dict1[102]="范进"
C.dict1["赵六"]=105   D.print(dict1["王五"])
答案 D
20.某校高二年级举行田径运动会,若用Xm={"100米":1,"200米":0,"1000米":1,"铅球":1,"跳远":0},其中0表示未报名,1表示报名,来存储小明的报名数据,现要取消小明的1000米报名,下列Python语句可行的是 (  )
A.Xm["1000米"]=0
B.Xm["1000米"][1]=0
C.Xm[2]=0
D.Xm."1000米"=0
答案 A
解析 本题考查字典的相关知识。字典是无序的数据结构,因此获取字典Xm中键"1000米"对应值的方法为Xm["1000米"],A选项可以修改字典的值。
21.下列表达式的值为True的是 (  )
A.not ("h" in "hand")
B."t" in ["tt","text","teacher","T"]
C."abs"*2<="abt"
D."some" not in ["someone","some","somy"]
答案 C
解析 本题主要考查的是表达式运算。"abs"*2的结果为"absabs",字符串比较大小是比较对应字符的ASCII码,因此"absabs"<="abt",答案为C。
22.已知字典dict1={1:"red",2:"green",3:"blue"},执行语句dict1[4]="white"后,字典dict1的内容为 (  )
A.{1:"red",2:"green",3:"blue","4":"white"}
B.{1:"red",2:"green",3:"blue","white":4}
C.{1:"red",2:"green",3:"blue",4:"white"}
D.{1:"red",2:"green",3:"blue","4":white}
答案 C
解析 本题主要考查的是字典。当键在字典中不存在时,字典名[键]=值的功能是在字典中添加键值对,因此答案为C。
二、能力提升
23.已知 food="milkeggbread",feel={1:"love",2:"like",3:"hate"}, people=["he","she","it"],则表达式 people[2]+feel[2][2:4]+food[1::4]的值是 (  )
A.itkeige B.itteige C.itkemer D.itikeige
答案 A
24.有如下Python程序段:
list1 = [1,6,20,18,16,9];list2 = [6,2,13,3,5]
a1=max(list1) + len(list2) ;a2=list1[3] ∥ list2[3]
ans = a1 % a2
执行该程序段后,ans的值为 (  )
A.1 B.2 C.3 D.4
答案 A
25.已知字典 dic={"姓名":"小明","语文":115,"数学":120,"英语":108},下列说法不正确的是 (  )
A.dic["语文"]+ dic["数学"]+ dic["英语"]的值是 343
B.若要将学生姓名更改为"小华",可执行语句 dic["姓名"]="小华"
C.若要添加该同学的技术成绩为 75,可执行语句 dic["技术"]=75
D.dic["英语"] in dic 的值为 True
答案 D
26.有如下Python程序段:
str1="01234"
list1=["6","7","8","9","10"]
dic1={"017":1,"0128":2,"128":3,"1237":4}
n=dic1[str1[1:3]+list1[-3]]
执行该程序段后,变量n的值为 (  )
A.1 B.2 C.3 D.4
答案 C
27.已知列表list1=[1,2,3,4],执行语句list1[2]=5后,列表a1中的内容为 (  )
A.[1,2,3,4,5] B.[1,5,3,4]
C.[1,2,5,4] D.[1,2,3,4,5]
答案 C
解析 本题主要考查的是列表操作。语句list1[2]=5的功能是更改列表中索引为2位置上的元素值为5,因此答案为C。
28.已知list1=list("php"),执行语句list1[2:]=list("Python")后,列表list1中的内容为 (  )
A.['p','h','p','P','y','t','h','o','n']
B.['p','P','y','t','h','o','n']
C.['p','h','P','y','t','h','o','n']
D.['P','y','t','h','o','n']
答案 C
解析 本题考查的是列表的替换操作。列表在使用切片赋值时,可以使用与原序列不等长的序列将切片内容替换。list1[2:]表示索引为2位置至最后一个元素的位置,即将列表list1中第3至最后一个元素内容替换为"Python",因此,答案为C。
29.已知list1=[2,3,5],执行语句list1[1:1]=[7,8,9]后,列表list1中的内容为 (  )
A.[2,7,5] B.[2,7,8,9]
C.[2,3,5,7,8,9] D.[2,7,8,9,3,5]
答案 D
解析 本题考查的是列表的插入操作。列表的切片赋值语句可以在不需要替换任何原有元素的情况下插入新元素。本题中语句的功能是将元素7,8,9从列表的第2个位置开始插入,因此,答案为D。
30.已知dict1={'name':'Jhon','age':20,'height':1.82},执行语句dict1['tel']=13867238656后,字典dict1中的内容为 (  )
A.{'name':'Jhon','age':20,'height':1.82,'tel':'13867238656'}
B.{'name':'Jhon','age':20,'tel':13867238656}
C.{'name':'Jhon','age':20,'height':1.82,tel:13867238656}
D.{'name':'Jhon','age':20,'height':1.82,'tel':13867238656}
答案 D
解析 本题考查的是字典操作。本题中语句的功能是在字典中添加一个元素,因此,答案为D。
31.某超市商品分类和价格用Python分别存储在list和price中。若goods_list={"蔬菜":["土豆","黄瓜","豆角"],"文具":["书包","笔记本","铅笔"],"零食":["果冻","薯片","酸奶"]},prices=[{"土豆":5,"黄瓜":6,"豆角":4},{"书包":40,"笔记本":7,"铅笔":2},{"果冻":12,"薯片":10,"酸奶":14}],则要访问文具类的第二个商品的名称和单价,其正确的表达式为 (  )
A.goods_list["文具"][1],prices[0]["笔记本"]
B.goods_list["文具"][1],prices[1]["笔记本"]
C.goods_list["文具"][2],prices[0]["笔记本"]
D.goods_list["文具"][2],prices[1]["笔记本"]
答案 B
32.某Python程序如下:
d={"A":1,"B":2,"C":3,"D":4,"E":5}
a=d["E"];b=d["D"]
c=d["B"]
s=a+b+c
程序运行后,变量s的值为 (  )
A.8 B.9 C.10 D.11
答案 D(共74张PPT)
课时2 Python基本数据结构
第三章 算法的程序实现
1.掌握Python字符串、列表、字典三种基本数据结构的使用方法。
2.能根据实际需求选用合适的数据结构存储数据。
目 录
CONTENTS
知识梳理
01
例题精析
02
随堂检测
03
巩固与提升
04
知识梳理
1
一、字符串
字符串是用单引号(')、双引号(")或三引号(''')括起来的一个字符序列,起始和末尾的引号必须要一致。
1.字符串的特点
(1)字符串是不可变对象。即一旦创建了一个字符串,那么这个字符串的内容是不可改变的。
(2)通过索引来访问字符串中的字符。索引表示字符在字符串的位置,第一个元素的索引号是0,第二个元素的索引号是1,以此类推。
2.字符串的切片操作
通过字符串的切片操作可以获得字符串的一个子串。
格式为:字符串名[start:end:step]
step默认为1,表示返回下标从start到end-1的字符构成的一个子串。
二、列表
列表是由0个或多个元素组成的序列,其中的元素可以是数字、字符串等混合类型的数据,甚至是其他的列表。
1.列表的特点
(1)列表用[]表示,元素间用逗号分隔,不同类型的元素可以存储在同一列表中。
(2)列表的大小是可变的,可以根据需要增加或缩小。
(3)列表是可变对象。一个列表被创建后,可以直接修改列表中的元素值。
2.列表的访问
列表中的元素是通过索引来定位的,第一个元素的索引号是0。列表中的元素可以通过索引进行访问。
3.列表的切片操作
列表的切片形式为list[i:j:k],i为起始位置索引(包含),默认为0,j为终止位置索引(不含),默认至序列尾;k为切片间隔,默认为1。i,j,k使用默认值时可省略。如有一列表list1=["姓名","马小云","年龄",18,"身高",1.75],则list1[0:2]=["姓名","马小云"]。
4.列表的创建方法
创建名为list1的列表:list1=[元素1,元素2,…,元素n]
5.列表的常用函数
函数 功能
append(x) 在列表尾部添加元素x
remove(x) 在列表中删除元素x
insert(i,x) 在i位置插入元素x
pop(i) 删除i位置的元素
sort() 对列表中的元素进行升序排序
三、字典
1.字典特点
字典是键值对的集合,即字典中的每个元素包含两部分内容:键和值。
键通常用字符串或数值来表示,值可以是任意类型的数据,键必须是不可变对象,在字典中必须是唯一的。键和值两者一一对应,且每个键只能对应一个值。通过键可以找到与其有关的值,反之则不行。
键和值在字典中以成对的形式出现,键-值用冒号分隔,各个对之间用逗号分隔,所有这些都包括在花括号“{}”中。字典中的元素是没有顺序的,引用元素时以键为索引。
2.字典的创建方法
创建名为dict1的字典:dict1={键1:值1,键2:值2,…,键n:值n}
3.字典的常见操作
操作命令或函数 功能
del dict1["x"] 删除键值为x的键值对
dict1.pop("x") 删除键值为x的键值对
dict1["x"]=1 添加(或修改)键为x值为1的键值对
dict1.update(dict) 批量更新
dict1.keys() 得到字典dict1所有的键
dict1.values() 得到字典dict1所有的值
dict1.items() 得到字典dict1所有的键值对
例题精析
2
例1 某超市用13位数字标识商品信息,其中8~12位是表示商品名的代码,用字符串变量s存储商品的信息码(例如:s="9787100109796",商品名代码是"10979"),下列Python表达式中能取出商品名代码的是 (  )
A.s[-6:-1] B.s[7:11] C.s[8:12] D.s[7:-2]
A
解析 本题考查字符串的切片。商品名代码位置为8至12位。而字符串的索引从0开始,在切片时终值取不到,切片序号为7:12。在索引序号为倒序的情况下,从-1开始,则切片序号为-6:-1。
解析 本题考查字符串的切片。7至14位对应的索引号为6至13,第14位也可以用索引号-4表示。
C
例2 在Python中若字符串s="ABC",有下列表达式:
①s[len(s)-1:0:-1] ②s[-1:-len(s)-1:-1] ③s[::-1] ④s[len(s)-1:-1:-1]
其中结果为"CBA"的是(  )
A.①② B.①③ C.②③ D.③④
解析 本题考查字符串的切片。-1表示字符串最后一个字符的位置。①中索引号为0的字符取不到。④中索引号为-1的取不到。
C
变式训练2 左右对称的字符串称回文串。若要判断字符串s是否为回文串,可以先找到s的中间位置mid=len(s)∥2;再采用切片操作取出s的左半部分left=s[0:mid];然后取出s的右半部分并反转,存储在变量right中;若left与right相等,则为回文串。则下列表达式能正确表达变量right值的是 (  )
A.s[mid::][::-1] B.s[mid+1::] [::-1]
C.s[len(s)-1:mid:-1] D.s[-1:-mid-1:-1]
解析 本题考查字符串的切片。右半部分要从最后一个位置开始倒着取到mid的位置。AB选项表示方法不规范。C选项切片是一个左闭右开的区间,mid位置取不到。D选项-1表示最后一个位置,-mid表示从右往左的一半位置,若要取到该位置,需再加上步长。
D
解析 本题主要考查字符串索引及切片的内容,字符串列表正索引从0开始,负索引从-1开始,切片是为前闭后开区间,list1中只有7个数据,因此最后一个数据为list[6],不存在list[7],故答案应选择B。
B
变式训练3 若有列表a=[1,2,3,4,5],则下列表达式值为True的是 (  )
A.'1' in a B.5 in a C.[1] in a D.0 in a
解析 本题考查的是Python中列表和“in”运算符。A选项,'1'是字符,不是数字,所以值为False;C选项,[1]是列表,不是a的成员,所以值为False;D选项,0不是列表a中的元素,所以值为False;5是列表a中的元素,所以5 in a的值为True,因此,答案为B。
B
例4 已知s=["C++","Python","Java"],则s[1][2]的结果是 (  )
A."PythonJava" B."C++Python"
C."+" D."t"
解析 本题考查列表和字符串的切片。s[1]的值为"Python","Python"[2]的值为"t"。
D
变式训练4 已知list=["Word","for","sent","city","piano"],则list[3][2]的返回值为 (  )
A."e" B."o" C."t" D."a"
解析 本题考查列表的相关知识。已知list=["Word,"for,"sent","city",
"piano"],list[3][2]取的是第4个字符串中的第3个字符,即list[3][2]="t"。
C
例5 已知字典dic存放学生的姓名和对应的语数英成绩,dic={"姓名":"小红","语文":101, "数学":118,"英语":132},现要在字典dic中增加一个键为“技术”,值为“97”的元素,下列语句正确的是 (  )
A.dic[技术]=97
B.dic["技术"]=["技术":97]
C.dic["技术"]=97
D.dic["技术"]={97}
解析 本题主要考查字典的概念及操作。Python中字典中数据以键值对的形式存在,键值之间用冒号隔开,键值对之间用逗号隔开。读取字典的值、新建键值对和修改键值对方式均为:字典名[键]=值.
C
变式训练5 已知字典dict1={1001:"Mali",1002:"Jack",1003:"Rose",
1004:"John"},现要将键为1002的值更新为"Alice",下列语句正确的是(  )
A.dict1[1002]="Alice"
B.dict1[1002:"Jack"]=[1002:"Alice"]
C.dict1[1002]={"Alice"}
D.dict1[1]="Alice"
解析 本题主要考查的是字典值的修改操作。对字典中存在的键值对赋值,新赋的值就会覆盖原有的值,这样即可改变字典中的键值对,因此答案为A。
A
例6 字典 data 中存储了如下数据:{"课程" :["舞蹈" , "Python" , "数学"], "地点":["舞蹈房", "计算机房", "教室"], "时长" :["60 分钟","40 分钟", "90 分钟"]},若将"数学"课的时长调整为"70 分钟",以下操作可行的是 (  )
A.data[2][2]= "70 分钟"
B.data["时长"][-1]= "70 分钟"
C.data[-1][2]= "70 分钟"
D.data["时长"][3]= "70 分钟"
解析 本题考查字典的操作。字典某个键包含多个值,因此需用列表来表示。字典中键是无序的,但列表是有序的,可能采用索引来表示。数学学科的时长保存在时长键中,取出时长的方法为data["时长"],其对应的值有["60 分钟","40 分钟", "90 分钟"],而数学学科的索引为2或-1。
B
变式训练6 字典cj中存有小胡、小李和小夏同学某次考试的成绩数据,并且成绩数据按语文、数学、英语的科目顺序进行存放。已知cj={"小胡":[85,93,88],"小李":[88,82,78],"小夏":[90,75,89]},现要读取小李同学的数学科目成绩,下列表达式正确的是 (  )
A.cj[1][1] B.cj["小李"][3:5]
C.cj["小李"][1] D.cj["小李"][2]
解析 本题考查字典和列表的基本操作。小李同学的科目成绩cj["小李"],即[88,82,78],而数学学科的索引为1。
C
随堂检测
3
1.已知变量s="2022jiaxing",则表达式s[1:len(s)∥2]+s[2]*2的值是 (  )
A."20224" B"2026" C."022j22" D."022j4"
C
解析 本题考查字符串的切片。len(s)∥2=5,即索引号为1-4的字符;s[2]值为"2",s[2]*2值为"22"。
2.已知motto="Beautifulisbetterthanugly.",得到切片"Beautiful"的表达式是
(  )
A.motto[1:9] B.motto[1:10]
C.motto[0:8] D.motto[0:9]
D
解析 本题考查字符串、列表的切片相关知识。切片的正索引是从“0”开始,且最后索引截止(不取)。
3.已知s="3.141592654",则s[4:6]+s[-1]返回值为 (  )
A."414" B."1594" C."154" D."19"
C
解析 本题主要考查字符串索引及切片的内容,字符串列表正索引从0开始,负索引从-1开始,切片是为前闭后开区间,s[4,6]只包括索引为4、5的字符,故答案为C。
4.已知变量s="2022py",则表达式s[2]*2+s[-2::]的值是 (  )
A."22p" B."4py" C."22py" D."4p"
C
5.已知变量s=["123","4567","789"],则表达式s[1][1::-1]*2+s[-1][1]的值是 (  )
A.'45458' B.'54548' C.'56568' D.'67678'
B
解析 本题考查列表和字符串的切片。s[1]的值为"4567",[1::-1]中第2个参数省略,默认为0,因此s[1][1::-1]值为"54",再将其重复两次,s[-1]的值为"789",s[-1][1]的值为"8"。
6.下列Python表达式的值为True的是 (  )
A.123∥10%10**2==4
B."BH005"[:2]=="BH0"
C."st" in "student"
D.int(5.64)==6
C
7.已知s="a,b,c,d,e,f",执行s[2:3]=" "后,s的值为 (  )
A."ab,c,d,e,f" B. "a,,b,c,d,e,f"
C."a,c,d,e,f" D.程序报错,无法执行
D
8.若n='PythonPythonPython',则表达式n[3::3]的值为 (  )
A.'hPhPh' B.'pyt'
C.'tntntn' D.'nhynhynhy'
A
9.已知变量 x='BigWorld',下列表达式的值为True的是 (  )
A.'big' in x B.x[3:-1]=='World'
C.x*3>'OK' D.x*2==x+x
D
10.下列Python表达式值为True的是 (  )
A. "average"[3:5]== "er"
B.30%7+10∥2**3==3
C.abs(int(-4.95))==5
D.4 in range(4)
B
11.若a="20230678",b=["2","4","6"],则表达式a[5:]+b[2:1:-1]*3的值是 (  )
A."24" B."696"
C."678666" D."0678444"
C
C
13.已知字典dict1={1:"red",2:"green",3:"blue"},则dict1[2]的值为 (  )
A.green B."green"
C.blue D."blue"
B
解析 本题主要考查的是字典。dict1是字典,dict1[2]表示的是键为2对应的值,键为2对应的值为"green",因此,答案为B。
14.使用字典Oil_dic={"92号":8.73,"95号":9.14}存储油价信息,经核实后92号油价是8.61,正确修改的语句是 (  )
A.Oil_dic[0]=8.61
B.Oil_dic[92号]=8.61
C.Oil_dic[1]=8.61
D.Oil_dic["92号"]=8.61
D
15.Python中字典dict={"米饭":116,"苹果":53,"牛奶":54,"巧克力":589}存储的是不同食物的热量,程序中若要将其中牛奶的热量值改为60,可用的语句为 (  )
A.dict{"牛奶"}=60 B.dict["牛奶"]=60
C.dict[2]=60 D.dict={"牛奶":60}
B
解析 本题考查字典的修改。dict是字典,dict["牛奶"]表示的是键为"牛奶"对应的值,选项B正确。
16.某超市部分商品的价格用Python存储在列表prices中,prices=[{"土豆":5,"黄瓜":6,"豆角":4},{"书包":40,"笔记本":7,"铅笔":2},{"果冻":12,"薯片":10,"酸奶":14}],若要访问果冻的价格,则正确的表达式为 (  )
A.prices[2]["果冻"] B.prices[3]["果冻"]
C.prices[2][1] D.prices[3][0]
A
4
巩固与提升
基础巩固
能力提升
A
解析 本题考查字符串的切片。
2.有如下Python程序段:
a="1357"
list1=["Car","Bus","Bike"]
list1[1]=a[1:3]
print(list1)
该程序段运行后的结果是(  )
A.['Car','Bus','Bike'] B.['Car',35,'Bike']
C.['Car','35','Bike'] D.['Car','3','5','Bike']
C
解析 本题考查字符串和列表的相关知识。对字符串作切片操作时,只能取结束位置所表示的索引号的前一个位置,所以a[1:3]所对应的子串为"35",赋值给列表list1[1]项,所以C选项正确。
3.已知s='abcdefgh',则s[1:5:2]+s[-1:-7:-2]的值是 (  )
A.'bdhfd' B.'bdfhfdb'
C.'achfd' D.'acehfdb'
A
解析 本题考查Python字符串的切片。s[1:5:2]顺序步长为2,结果为"bd",s[-1:-7:-2]逆序步长为2,结果为"hfd",因此结果为A选项。
4.若a="3.1415926",b=[1,"5",11],则表达式a[-2:]+b[1]*2的值是 (  )
A."2655" B."36" C."92655" D."81"
A
5.已知s='ilovepython',则s[1:6:2]+s[-2:-8:-2]的值是 (  )
A.'lvpotp' B.'lvptop' C.'lvpyto' D.'ioeyto'
A
6.下列表达式中数值最大的是 (  )
A.len("12"*4) B.round(3.2,0)**2
C.int(32.9)%11 D. abs(-20)//3
C
7.已知a=["a", "b","c",1,2,3],想要获取列表 a 中"b"和"c" 的切片,下列语句正确的是 (  )
A.print(a[b:c]) B.print(a[1:2])
C.print(a[1:3]) D.print(a[1:-4])
C
A
9.下列表达式的值为True的是 (  )
A.int(8.9)B."happy"[1:3]=="app"
C.168∥10%10==8
D.2+5**2∥2!=15
D
10.下列Python表达式的值为False的是 (  )
A.2**5>5**2 B.2 in ["2","5"]
C.5∥2==int(5/2) D.2%5!=1
B
11.有字符串s="Congratulations",若对其中的元素进行s[1:4]访问,则结果为 (  )
A."Cong" B."Con" C."ongr" D."ong"
D
12.已知列表list1=[3,4,"5",56],则表达式"print(5 in list1)"运行后结果为 (  )
A.True B.False C.1 D.0
B
B
13.下列Python表达式中,与Len("信息满分")的值相同的个数是 (  )
①int("10",16)**1/2 ②abs(int(-4.1)) ③4%5 ④"20220114"[7:]
A.1 B.2 C.3 D.4
14.已知列表List1=[1,3,5,2,4],要在列表List1中的最前面添加元素9,则下列操作可行的是 (  )
A.List1=9+List1
B.List1="9"+List1
C.List1=[9]+List1
D.List1=List1+[9]
C
解析 本题考查的是列表操作。在列表中添加元素,元素要用[]括起来,并且要添加在列表List1的最前面,因此操作可行的是List1=[9]+List1,答案为C。
15.某超市用13位数字标识商品信息,其中8~12位是表示商品名的代码,用字符串变量s存储商品的信息码(例如:s="9787100109796",商品名代码是"10979"),下列Python表达式中能取出商品名代码的是 (  )
A.s[-6:-1] B.s[7:11]
C.s[8:12] D.s[7:-2]
A
16.下列关于Python基本数据结构的描述,正确的是 (  )
A.字符串不能由0个字符组成,只能由多个字符组成
B.不同类型的元素可以存在于同一列表中
C.列表元素能通过索引来定位而字符串不能
D.字典创建后不能进行增删操作
B
17.已知x="苹果,50",y=["苹果",50],z={"苹果":50},下列Python表达式的值为True,正确的是 (  )
A.x[-4::-1]==y[0]
B.x[3:5]==y[1]
C.y[1] in z
D.z[y[0]]==50
D
B
D
A
20.某校高二年级举行田径运动会,若用Xm={"100米":1,"200米":0,"1000米":1,"铅球":1,"跳远":0},其中0表示未报名,1表示报名,来存储小明的报名数据,现要取消小明的1000米报名,下列Python语句可行的是 (  )
A.Xm["1000米"]=0
B.Xm["1000米"][1]=0
C.Xm[2]=0
D.Xm."1000米"=0
解析 本题考查字典的相关知识。字典是无序的数据结构,因此获取字典Xm中键"1000米"对应值的方法为Xm["1000米"],A选项可以修改字典的值。
C
21.下列表达式的值为True的是 (  )
A.not ("h" in "hand")
B."t" in ["tt","text","teacher","T"]
C."abs"*2<="abt"
D."some" not in ["someone","some","somy"]
解析 本题主要考查的是表达式运算。"abs"*2的结果为"absabs",字符串比较大小是比较对应字符的ASCII码,因此"absabs"<="abt",答案为C。
C
22.已知字典dict1={1:"red",2:"green",3:"blue"},执行语句dict1[4]="white"后,字典dict1的内容为 (  )
A.{1:"red",2:"green",3:"blue","4":"white"}
B.{1:"red",2:"green",3:"blue","white":4}
C.{1:"red",2:"green",3:"blue",4:"white"}
D.{1:"red",2:"green",3:"blue","4":white}
解析 本题主要考查的是字典。当键在字典中不存在时,字典名[键]=值的功能是在字典中添加键值对,因此答案为C。
A
23.已知 food="milkeggbread",feel={1:"love",2:"like",3:"hate"}, people=["he","she","it"],则表达式 people[2]+feel[2][2:4]+food[1::4]的值是 (  )
A.itkeige B.itteige
C.itkemer D.itikeige
A
24.有如下Python程序段:
list1 = [1,6,20,18,16,9];list2 = [6,2,13,3,5]
a1=max(list1) + len(list2) ;a2=list1[3] ∥ list2[3]
ans = a1 % a2
执行该程序段后,ans的值为(  )
A.1 B.2 C.3 D.4
D
C
26.有如下Python程序段:
str1="01234"
list1=["6","7","8","9","10"]
dic1={"017":1,"0128":2,"128":3,"1237":4}
n=dic1[str1[1:3]+list1[-3]]
执行该程序段后,变量n的值为(  )
A.1 B.2 C.3 D.4
C
27.已知列表list1=[1,2,3,4],执行语句list1[2]=5后,列表a1中的内容为 (  )
A.[1,2,3,4,5] B.[1,5,3,4]
C.[1,2,5,4] D.[1,2,3,4,5]
解析 本题主要考查的是列表操作。语句list1[2]=5的功能是更改列表中索引为2位置上的元素值为5,因此答案为C。
C
28.已知list1=list("php"),执行语句list1[2:]=list("Python")后,列表list1中的内容为 (  )
A.['p','h','p','P','y','t','h','o','n']
B.['p','P','y','t','h','o','n']
C.['p','h','P','y','t','h','o','n']
D.['P','y','t','h','o','n']
解析 本题考查的是列表的替换操作。列表在使用切片赋值时,可以使用与原序列不等长的序列将切片内容替换。list1[2:]表示索引为2位置至最后一个元素的位置,即将列表list1中第3至最后一个元素内容替换为"Python",因此,答案为C。
D
29.已知list1=[2,3,5],执行语句list1[1:1]=[7,8,9]后,列表list1中的内容为 (  )
A.[2,7,5] B.[2,7,8,9]
C.[2,3,5,7,8,9] D.[2,7,8,9,3,5]
解析 本题考查的是列表的插入操作。列表的切片赋值语句可以在不需要替换任何原有元素的情况下插入新元素。本题中语句的功能是将元素7,8,9从列表的第2个位置开始插入,因此,答案为D。
D
30.已知dict1={'name':'Jhon','age':20,'height':1.82},执行语句dict1['tel']=13867238656后,字典dict1中的内容为 (  )
A.{'name':'Jhon','age':20,'height':1.82,'tel':'13867238656'}
B.{'name':'Jhon','age':20,'tel':13867238656}
C.{'name':'Jhon','age':20,'height':1.82,tel:13867238656}
D.{'name':'Jhon','age':20,'height':1.82,'tel':13867238656}
解析 本题考查的是字典操作。本题中语句的功能是在字典中添加一个元素,因此,答案为D。
B
31.某超市商品分类和价格用Python分别存储在list和price中。若goods_list={"蔬菜":["土豆","黄瓜","豆角"],"文具":["书包","笔记本","铅笔"],"零食":["果冻","薯片","酸奶"]},prices=[{"土豆":5,"黄瓜":6,"豆角":4},{"书包":40,"笔记本":7,"铅笔":2},{"果冻":12,"薯片":10,"酸奶":14}],则要访问文具类的第二个商品的名称和单价,其正确的表达式为 (  )
A.goods_list["文具"][1],prices[0]["笔记本"]
B.goods_list["文具"][1],prices[1]["笔记本"]
C.goods_list["文具"][2],prices[0]["笔记本"]
D.goods_list["文具"][2],prices[1]["笔记本"]
D
32.某Python程序如下:
d={"A":1,"B":2,"C":3,"D":4,"E":5}
a=d["E"];b=d["D"]
c=d["B"]
s=a+b+c
程序运行后,变量s的值为(  )
A.8 B.9 C.10 D.11课时2 Python基本数据结构
课时目标
1.掌握Python字符串、列表、字典三种基本数据结构的使用方法。2.能根据实际需求选用合适的数据结构存储数据。
一、字符串
字符串是用单引号(')、双引号(″)或三引号(''')括起来的一个字符序列,起始和末尾的引号必须要一致。
1.字符串的特点
(1)字符串是不可变对象。即一旦创建了一个字符串,那么这个字符串的内容是不可改变的。
(2)通过索引来访问字符串中的字符。索引表示字符在字符串的位置,第一个元素的索引号是0,第二个元素的索引号是1,以此类推。
2.字符串的切片操作
通过字符串的切片操作可以获得字符串的一个子串。
格式为:字符串名[start:end:step]
step默认为1,表示返回下标从start到end-1的字符构成的一个子串。
二、列表
列表是由0个或多个元素组成的序列,其中的元素可以是数字、字符串等混合类型的数据,甚至是其他的列表。
1.列表的特点
(1)列表用[]表示,元素间用逗号分隔,不同类型的元素可以存储在同一列表中。
(2)列表的大小是可变的,可以根据需要增加或缩小。
(3)列表是可变对象。一个列表被创建后,可以直接修改列表中的元素值。
2.列表的访问
列表中的元素是通过索引来定位的,第一个元素的索引号是0。列表中的元素可以通过索引进行访问。
3.列表的切片操作
列表的切片形式为list[i:j:k],i为起始位置索引(包含),默认为0,j为终止位置索引(不含),默认至序列尾;k为切片间隔,默认为1。i,j,k使用默认值时可省略。如有一列表list1=[″姓名″,″马小云″,″年龄″,18,″身高″,1.75],则list1[0:2]=[″姓名″,″马小云″]。
4.列表的创建方法
创建名为list1的列表:list1=[元素1,元素2,…,元素n]
5.列表的常用函数
函数 功能
append(x) 在列表尾部添加元素x
remove(x) 在列表中删除元素x
insert(i,x) 在i位置插入元素x
pop(i) 删除i位置的元素
sort() 对列表中的元素进行升序排序
三、字典
1.字典特点
字典是键值对的集合,即字典中的每个元素包含两部分内容:键和值。
键通常用字符串或数值来表示,值可以是任意类型的数据,键必须是不可变对象,在字典中必须是唯一的。键和值两者一一对应,且每个键只能对应一个值。通过键可以找到与其有关的值,反之则不行。
键和值在字典中以成对的形式出现,键-值用冒号分隔,各个对之间用逗号分隔,所有这些都包括在花括号“{}”中。字典中的元素是没有顺序的,引用元素时以键为索引。
2.字典的创建方法
创建名为dict1的字典:dict1={键1:值1,键2:值2,…,键n:值n}
3.字典的常见操作
操作命令或函数 功能
del dict1[″x″] 删除键值为x的键值对
dict1.pop(″x″) 删除键值为x的键值对
dict1[″x″]=1 添加(或修改)键为x值为1的键值对
dict1.update(dict) 批量更新
dict1.keys() 得到字典dict1所有的键
dict1.values() 得到字典dict1所有的值
dict1.items() 得到字典dict1所有的键值对
例1 某超市用13位数字标识商品信息,其中8~12位是表示商品名的代码,用字符串变量s存储商品的信息码(例如:s=″9787100109796″,商品名代码是″10979″),下列Python表达式中能取出商品名代码的是(  )
A.s[-6:-1] B.s[7:11]
C.s[8:12] D.s[7:-2]
听课笔记:                                    
                                    
                                    
                                    
变式训练1 字符串变量s中存有小李身份证号码(s=″331004200608160037″,其中7至14位“20060816” 代表出生日期)。若想提取小李身份证中的出生日期,下列Python表达式有错误的是(  )
A.s[-12:-4] B.s[6:14]
C.s[7:15] D.s[6:-4]
例2 在Python中若字符串s=″ABC″,有下列表达式:
①s[len(s)-1:0:-1] ②s[-1:-len(s)-1:-1]
③s[::-1] ④s[len(s)-1:-1:-1]
其中结果为″CBA″的是(  )
A.①② B.①③
C.②③ D.③④
听课笔记:                                    
                                    
                                    
                                    
变式训练2 左右对称的字符串称回文串。若要判断字符串s是否为回文串,可以先找到s的中间位置mid=len(s)∥2;再采用切片操作取出s的左半部分left=s[0:mid];然后取出s的右半部分并反转,存储在变量right中;若left与right相等,则为回文串。则下列表达式能正确表达变量right值的是(  )
A.s[mid::][::-1]
B.s[mid+1::] [::-1]
C.s[len(s)-1:mid:-1]
D.s[-1:-mid-1:-1]
例3 列表list1=[2,3,5,10,18,22,29],现在想要得到列表的最后一个元素29,下列选项中不能实现该功能的是(  )
A.list1[6] B.list1[7]
C.list1[-1] D.list1[6:7]
听课笔记:                                    
                                    
                                    
                                    
变式训练3 若有列表a=[1,2,3,4,5],则下列表达式值为True的是(  )
A.'1' in a B.5 in a
C.[1] in a D.0 in a
例4 已知s=[″C++″,″Python″,″Java″],则s[1][2]的结果是(  )
A.″PythonJava″ B.″C++Python″
C.″+″ D.″t″
听课笔记:                                    
                                    
                                    
                                    
变式训练4 已知list=[″Word″,″for″,″sent″,″city″,″piano″],则list[3][2]的返回值为(  )
A.″e″ B.″o″
C.″t″ D.″a″
例5 已知字典dic存放学生的姓名和对应的语数英成绩,dic={″姓名″:″小红″,″语文″:101, ″数学″:118,″英语″:132},现要在字典dic中增加一个键为“技术”,值为“97”的元素,下列语句正确的是(  )
A.dic[技术]=97
B.dic[″技术″]=[″技术″:97]
C.dic[″技术″]=97
D.dic[″技术″]={97}
听课笔记:                                    
                                    
                                    
                                    
变式训练5 已知字典dict1={1001:″Mali″,1002:″Jack″,1003:″Rose″,1004:″John″},现要将键为1002的值更新为″Alice″,下列语句正确的是(  )
A.dict1[1002]=″Alice″
B.dict1[1002:″Jack″]=[1002:″Alice″]
C.dict1[1002]={″Alice″}
D.dict1[1]=″Alice″
例6 字典 data 中存储了如下数据:{″课程″ :[″舞蹈″ , ″Python″ , ″数学″], ″地点″:[″舞蹈房″, ″计算机房″, ″教室″], ″时长″ :[″60 分钟″,″40 分钟″, ″90 分钟″]},若将″数学″课的时长调整为″70 分钟″,以下操作可行的是(  )
A.data[2][2]= ″70 分钟″
B.data[″时长″][-1]= ″70 分钟″
C.data[-1][2]= ″70 分钟″
D.data[″时长″][3]= ″70 分钟″
听课笔记:                                    
                                    
                                    
                                    
变式训练6 字典cj中存有小胡、小李和小夏同学某次考试的成绩数据,并且成绩数据按语文、数学、英语的科目顺序进行存放。已知cj={″小胡″:[85,93,88],″小李″:[88,82,78],″小夏″:[90,75,89]},现要读取小李同学的数学科目成绩,下列表达式正确的是(  )
A.cj[1][1] B.cj[″小李″][3:5]
C.cj[″小李″][1] D.cj[″小李″][2]
1.已知变量s=″2022jiaxing″,则表达式s[1:len(s)∥2]+s[2]*2的值是(  )
A.″20224″ B″2026″
C.″022j22″ D.″022j4″
2.已知motto=″Beautifulisbetterthanugly.″,得到切片″Beautiful″的表达式是(  )
A.motto[1:9] B.motto[1:10]
C.motto[0:8] D.motto[0:9]
3.已知s=″3.141592654″,则s[4:6]+s[-1]返回值为(  )
A.″414″ B.″1594″
C.″154″ D.″19″
4.已知变量s=″2022py″,则表达式s[2]*2+s[-2::]的值是(  )
A.″22p″ B.″4py″
C.″22py″ D.″4p″
5.已知变量s=[″123″,″4567″,″789″],则表达式s[1][1::-1]*2+s[-1][1]的值是(  )
A.'45458' B.'54548'
C.'56568' D.'67678'
6.下列Python表达式的值为True的是(  )
A.123∥10%10**2==4
B.″BH005″[:2]==″BH0″
C.″st″ in ″student″
D.int(5.64)==6
7.已知s=″a,b,c,d,e,f″,执行s[2:3]=″ ″后,s的值为(  )
A.″ab,c,d,e,f″ B. ″a,,b,c,d,e,f″
C.″a,c,d,e,f″ D.程序报错,无法执行
8.若n='PythonPythonPython',则表达式n[3::3]的值为(  )
A.'hPhPh' B.'pyt'
C.'tntntn' D.'nhynhynhy'
9.已知变量 x='BigWorld',下列表达式的值为True的是(  )
A.'big' in x B.x[3:-1]=='World'
C.x*3>'OK' D.x*2==x+x
10.下列Python表达式值为True的是(  )
A. ″average″[3:5]== ″er″
B.30%7+10∥2**3==3
C.abs(int(-4.95))==5
D.4 in range(4)
11.若a=″20230678″,b=[″2″,″4″,″6″],则表达式a[5:]+b[2:1:-1]*3的值是(  )
A.″24″ B.″696″
C.″678666″ D.″0678444″
12.以下Python表达式中,下列选项的值与其他三项不同的是(  )
A.len(″my name is james″.split)
B.int(4.99)
C.sum([1,2,1,1])
D.max([1,2,3,4])
13.已知字典dict1={1:″red″,2:″green″,3:″blue″},则dict1[2]的值为(  )
A.green B.″green″
C.blue D.″blue″
14.使用字典Oil_dic={″92号″:8.73,″95号″:9.14}存储油价信息,经核实后92号油价是8.61,正确修改的语句是(  )
A.Oil_dic[0]=8.61
B.Oil_dic[92号]=8.61
C.Oil_dic[1]=8.61
D.Oil_dic[″92号″]=8.61
15.Python中字典dict={″米饭″:116,″苹果″:53,″牛奶″:54,″巧克力″:589}存储的是不同食物的热量,程序中若要将其中牛奶的热量值改为60,可用的语句为(  )
A.dict{″牛奶″}=60 B.dict[″牛奶″]=60
C.dict[2]=60 D.dict={″牛奶″:60}
16.某超市部分商品的价格用Python存储在列表prices中,prices=[{″土豆″:5,″黄瓜″:6,″豆角″:4},{″书包″:40,″笔记本″:7,″铅笔″:2},{″果冻″:12,″薯片″:10,″酸奶″:14}],若要访问果冻的价格,则正确的表达式为(  )
A.prices[2][″果冻″] B.prices[3][″果冻″]
C.prices[2][1] D.prices[3][0]

展开更多......

收起↑

资源列表