資源簡介 課時2 Python基本數(shù)據(jù)結(jié)構(gòu)課時目標(biāo)1.掌握Python字符串、列表、字典三種基本數(shù)據(jù)結(jié)構(gòu)的使用方法。2.能根據(jù)實(shí)際需求選用合適的數(shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù)。一、字符串字符串是用單引號(')、雙引號(")或三引號(''')括起來的一個字符序列,起始和末尾的引號必須要一致。1.字符串的特點(diǎn)(1)字符串是不可變對象。即一旦創(chuàng)建了一個字符串,那么這個字符串的內(nèi)容是不可改變的。(2)通過索引來訪問字符串中的字符。索引表示字符在字符串的位置,第一個元素的索引號是0,第二個元素的索引號是1,以此類推。2.字符串的切片操作通過字符串的切片操作可以獲得字符串的一個子串。格式為:字符串名[start:end:step]step默認(rèn)為1,表示返回下標(biāo)從start到end-1的字符構(gòu)成的一個子串。二、列表列表是由0個或多個元素組成的序列,其中的元素可以是數(shù)字、字符串等混合類型的數(shù)據(jù),甚至是其他的列表。1.列表的特點(diǎn)(1)列表用[]表示,元素間用逗號分隔,不同類型的元素可以存儲在同一列表中。(2)列表的大小是可變的,可以根據(jù)需要增加或縮小。(3)列表是可變對象。一個列表被創(chuàng)建后,可以直接修改列表中的元素值。2.列表的訪問列表中的元素是通過索引來定位的,第一個元素的索引號是0。列表中的元素可以通過索引進(jìn)行訪問。3.列表的切片操作列表的切片形式為list[i:j:k],i為起始位置索引(包含),默認(rèn)為0,j為終止位置索引(不含),默認(rèn)至序列尾;k為切片間隔,默認(rèn)為1。i,j,k使用默認(rèn)值時可省略。如有一列表list1=["姓名","馬小云","年齡",18,"身高",1.75],則list1[0:2]=["姓名","馬小云"]。4.列表的創(chuàng)建方法創(chuàng)建名為list1的列表:list1=[元素1,元素2,…,元素n]5.列表的常用函數(shù)函數(shù) 功能append(x) 在列表尾部添加元素xremove(x) 在列表中刪除元素xinsert(i,x) 在i位置插入元素xpop(i) 刪除i位置的元素sort() 對列表中的元素進(jìn)行升序排序三、字典1.字典特點(diǎn)字典是鍵值對的集合,即字典中的每個元素包含兩部分內(nèi)容:鍵和值。鍵通常用字符串或數(shù)值來表示,值可以是任意類型的數(shù)據(jù),鍵必須是不可變對象,在字典中必須是唯一的。鍵和值兩者一一對應(yīng),且每個鍵只能對應(yīng)一個值。通過鍵可以找到與其有關(guān)的值,反之則不行。鍵和值在字典中以成對的形式出現(xiàn),鍵-值用冒號分隔,各個對之間用逗號分隔,所有這些都包括在花括號“{}”中。字典中的元素是沒有順序的,引用元素時以鍵為索引。2.字典的創(chuàng)建方法創(chuàng)建名為dict1的字典:dict1={鍵1:值1,鍵2:值2,…,鍵n:值n}3.字典的常見操作操作命令或函數(shù) 功能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位數(shù)字標(biāo)識商品信息,其中8~12位是表示商品名的代碼,用字符串變量s存儲商品的信息碼(例如:s="9787100109796",商品名代碼是"10979"),下列Python表達(dá)式中能取出商品名代碼的是 ( )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。變式訓(xùn)練1 字符串變量s中存有小李身份證號碼(s="331004200608160037",其中7至14位“20060816” 代表出生日期)。若想提取小李身份證中的出生日期,下列Python表達(dá)式有錯誤的是 ( )A.s[-12:-4] B.s[6:14] C.s[7:15] D.s[6:-4]答案 C解析 本題考查字符串的切片。7至14位對應(yīng)的索引號為6至13,第14位也可以用索引號-4表示。例2 在Python中若字符串s="ABC",有下列表達(dá)式:①s[len(s)-1:0:-1] ②s[-1:-len(s)-1:-1] ③s[::-1] ④s[len(s)-1:-1:-1]其中結(jié)果為"CBA"的是 ( )A.①② B.①③ C.②③ D.③④答案 C解析 本題考查字符串的切片。-1表示字符串最后一個字符的位置。①中索引號為0的字符取不到。④中索引號為-1的取不到。變式訓(xùn)練2 左右對稱的字符串稱回文串。若要判斷字符串s是否為回文串,可以先找到s的中間位置mid=len(s)∥2;再采用切片操作取出s的左半部分left=s[0:mid];然后取出s的右半部分并反轉(zhuǎn),存儲在變量right中;若left與right相等,則為回文串。則下列表達(dá)式能正確表達(dá)變量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選項表示方法不規(guī)范。C選項切片是一個左閉右開的區(qū)間,mid位置取不到。D選項-1表示最后一個位置,-mid表示從右往左的一半位置,若要取到該位置,需再加上步長。例3 列表list1=[2,3,5,10,18,22,29],現(xiàn)在想要得到列表的最后一個元素29,下列選項中不能實(shí)現(xiàn)該功能的是 ( )A.list1[6] B.list1[7] C.list1[-1] D.list1[6:7]答案 B解析 本題主要考查字符串索引及切片的內(nèi)容,字符串列表正索引從0開始,負(fù)索引從-1開始,切片是為前閉后開區(qū)間,list1中只有7個數(shù)據(jù),因此最后一個數(shù)據(jù)為list[6],不存在list[7],故答案應(yīng)選擇B。變式訓(xùn)練3 若有列表a=[1,2,3,4,5],則下列表達(dá)式值為True的是 ( )A.'1' in a B.5 in a C.[1] in a D.0 in a答案 B解析 本題考查的是Python中列表和“in”運(yùn)算符。A選項,'1'是字符,不是數(shù)字,所以值為False;C選項,[1]是列表,不是a的成員,所以值為False;D選項,0不是列表a中的元素,所以值為False;5是列表a中的元素,所以5 in a的值為True,因此,答案為B。例4 已知s=["C++","Python","Java"],則s[1][2]的結(jié)果是 ( )A."PythonJava" B."C++Python" C."+" D."t"答案 D解析 本題考查列表和字符串的切片。s[1]的值為"Python","Python"[2]的值為"t"。變式訓(xùn)練4 已知list=["Word","for","sent","city","piano"],則list[3][2]的返回值為 ( )A."e" B."o" C."t" D."a"答案 C解析 本題考查列表的相關(guān)知識。已知list=["Word,"for,"sent","city","piano"],list[3][2]取的是第4個字符串中的第3個字符,即list[3][2]="t"。例5 已知字典dic存放學(xué)生的姓名和對應(yīng)的語數(shù)英成績,dic={"姓名":"小紅","語文":101, "數(shù)學(xué)":118,"英語":132},現(xiàn)要在字典dic中增加一個鍵為“技術(shù)”,值為“97”的元素,下列語句正確的是 ( )A.dic[技術(shù)]=97B.dic["技術(shù)"]=["技術(shù)":97]C.dic["技術(shù)"]=97D.dic["技術(shù)"]={97}答案 C解析 本題主要考查字典的概念及操作。Python中字典中數(shù)據(jù)以鍵值對的形式存在,鍵值之間用冒號隔開,鍵值對之間用逗號隔開。讀取字典的值、新建鍵值對和修改鍵值對方式均為:字典名[鍵]=值.變式訓(xùn)練5 已知字典dict1={1001:"Mali",1002:"Jack",1003:"Rose",1004:"John"},現(xiàn)要將鍵為1002的值更新為"Alice",下列語句正確的是 ( )A.dict1[1002]="Alice"B.dict1[1002:"Jack"]=[1002:"Alice"]C.dict1[1002]={"Alice"}D.dict1[1]="Alice"答案 A解析 本題主要考查的是字典值的修改操作。對字典中存在的鍵值對賦值,新賦的值就會覆蓋原有的值,這樣即可改變字典中的鍵值對,因此答案為A。例6 字典 data 中存儲了如下數(shù)據(jù):{"課程" :["舞蹈" , "Python" , "數(shù)學(xué)"], "地點(diǎn)":["舞蹈房", "計算機(jī)房", "教室"], "時長" :["60 分鐘","40 分鐘", "90 分鐘"]},若將"數(shù)學(xué)"課的時長調(diào)整為"70 分鐘",以下操作可行的是 ( )A.data[2][2]= "70 分鐘"B.data["時長"][-1]= "70 分鐘"C.data[-1][2]= "70 分鐘"D.data["時長"][3]= "70 分鐘"答案 B解析 本題考查字典的操作。字典某個鍵包含多個值,因此需用列表來表示。字典中鍵是無序的,但列表是有序的,可能采用索引來表示。數(shù)學(xué)學(xué)科的時長保存在時長鍵中,取出時長的方法為data["時長"],其對應(yīng)的值有["60 分鐘","40 分鐘", "90 分鐘"],而數(shù)學(xué)學(xué)科的索引為2或-1。變式訓(xùn)練6 字典cj中存有小胡、小李和小夏同學(xué)某次考試的成績數(shù)據(jù),并且成績數(shù)據(jù)按語文、數(shù)學(xué)、英語的科目順序進(jìn)行存放。已知cj={"小胡":[85,93,88],"小李":[88,82,78],"小夏":[90,75,89]},現(xiàn)要讀取小李同學(xué)的數(shù)學(xué)科目成績,下列表達(dá)式正確的是 ( )A.cj[1][1] B.cj["小李"][3:5] C.cj["小李"][1] D.cj["小李"][2]答案 C解析 本題考查字典和列表的基本操作。小李同學(xué)的科目成績cj["小李"],即[88,82,78],而數(shù)學(xué)學(xué)科的索引為1。 1.已知變量s="2022jiaxing",則表達(dá)式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"的表達(dá)式是 ( )A.motto[1:9] B.motto[1:10] C.motto[0:8] D.motto[0:9]答案 D解析 本題考查字符串、列表的切片相關(guān)知識。切片的正索引是從“0”開始,且最后索引截止(不取)。3.已知s="3.141592654",則s[4:6]+s[-1]返回值為 ( )A."414" B."1594" C."154" D."19"答案 C解析 本題主要考查字符串索引及切片的內(nèi)容,字符串列表正索引從0開始,負(fù)索引從-1開始,切片是為前閉后開區(qū)間,s[4,6]只包括索引為4、5的字符,故答案為C。4.已知變量s="2022py",則表達(dá)式s[2]*2+s[-2::]的值是 ( )A."22p" B."4py" C."22py" D."4p"答案 C5.已知變量s=["123","4567","789"],則表達(dá)式s[1][1::-1]*2+s[-1][1]的值是 ( )A.'45458' B.'54548' C.'56568' D.'67678'答案 B解析 本題考查列表和字符串的切片。s[1]的值為"4567",[1::-1]中第2個參數(shù)省略,默認(rèn)為0,因此s[1][1::-1]值為"54",再將其重復(fù)兩次,s[-1]的值為"789",s[-1][1]的值為"8"。6.下列Python表達(dá)式的值為True的是 ( )A.123∥10%10**2==4B."BH005"[:2]=="BH0"C."st" in "student"D.int(5.64)==6答案 C7.已知s="a,b,c,d,e,f",執(zhí)行s[2:3]=" "后,s的值為 ( )A."ab,c,d,e,f" B. "a,,b,c,d,e,f"C."a,c,d,e,f" D.程序報錯,無法執(zhí)行答案 D8.若n='PythonPythonPython',則表達(dá)式n[3::3]的值為 ( )A.'hPhPh' B.'pyt'C.'tntntn' D.'nhynhynhy'答案 A9.已知變量 x='BigWorld',下列表達(dá)式的值為True的是 ( )A.'big' in x B.x[3:-1]=='World'C.x*3>'OK' D.x*2==x+x答案 D10.下列Python表達(dá)式值為True的是 ( )A. "average"[3:5]== "er"B.30%7+10∥2**3==3C.abs(int(-4.95))==5D.4 in range(4)答案 B11.若a="20230678",b=["2","4","6"],則表達(dá)式a[5:]+b[2:1:-1]*3的值是 ( )A."24" B."696"C."678666" D."0678444"答案 C12.以下Python表達(dá)式中,下列選項的值與其他三項不同的是 ( )A.len("my name is james".split)B.int(4.99)C.sum([1,2,1,1])D.max([1,2,3,4])答案 C13.已知字典dict1={1:"red",2:"green",3:"blue"},則dict1[2]的值為 ( )A.green B."green"C.blue D."blue"答案 B解析 本題主要考查的是字典。dict1是字典,dict1[2]表示的是鍵為2對應(yīng)的值,鍵為2對應(yīng)的值為"green",因此,答案為B。14.使用字典Oil_dic={"92號":8.73,"95號":9.14}存儲油價信息,經(jīng)核實(shí)后92號油價是8.61,正確修改的語句是 ( )A.Oil_dic[0]=8.61B.Oil_dic[92號]=8.61C.Oil_dic[1]=8.61D.Oil_dic["92號"]=8.61答案 D15.Python中字典dict={"米飯":116,"蘋果":53,"牛奶":54,"巧克力":589}存儲的是不同食物的熱量,程序中若要將其中牛奶的熱量值改為60,可用的語句為 ( )A.dict{"牛奶"}=60 B.dict["牛奶"]=60C.dict[2]=60 D.dict={"牛奶":60}答案 B解析 本題考查字典的修改。dict是字典,dict["牛奶"]表示的是鍵為"牛奶"對應(yīng)的值,選項B正確。16.某超市部分商品的價格用Python存儲在列表prices中,prices=[{"土豆":5,"黃瓜":6,"豆角":4},{"書包":40,"筆記本":7,"鉛筆":2},{"果凍":12,"薯片":10,"酸奶":14}],若要訪問果凍的價格,則正確的表達(dá)式為 ( )A.prices[2]["果凍"] B.prices[3]["果凍"]C.prices[2][1] D.prices[3][0]答案 A一、基礎(chǔ)鞏固 1.國際標(biāo)準(zhǔn)書號(International Standard Book Number),簡稱ISBN,是專門為識別圖書等文獻(xiàn)而設(shè)計的國際編號,ISBN書號的前三位為前綴號,一般為“978”或“979”。小周嘗試用Python語言對ISBN書號中的前綴號進(jìn)行提取,當(dāng)ISBN書號s="978-7-5536-9027-8"時,以下表達(dá)式不正確的是 ( )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)該程序段運(yùn)行后的結(jié)果是 ( )A.['Car','Bus','Bike']B.['Car',35,'Bike']C.['Car','35','Bike']D.['Car','3','5','Bike']答案 C解析 本題考查字符串和列表的相關(guān)知識。對字符串作切片操作時,只能取結(jié)束位置所表示的索引號的前一個位置,所以a[1:3]所對應(yīng)的子串為"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,結(jié)果為"bd",s[-1:-7:-2]逆序步長為2,結(jié)果為"hfd",因此結(jié)果為A選項。4.若a="3.1415926",b=[1,"5",11],則表達(dá)式a[-2:]+b[1]*2的值是 ( )A."2655" B."36" C."92655" D."81"答案 A5.已知s='ilovepython',則s[1:6:2]+s[-2:-8:-2]的值是 ( )A.'lvpotp' B.'lvptop' C.'lvpyto' D.'ioeyto'答案 A6.下列表達(dá)式中數(shù)值最大的是 ( )A.len("12"*4) B.round(3.2,0)**2C.int(32.9)%11 D. abs(-20)//3答案 C7.已知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])答案 C8.下列語句在Python中不正確的是 ( )A.a=b="123"+45B.a=b=c=100C.a,b=b,aD.a,b="Hi",["Luck",6]答案 A9.下列表達(dá)式的值為True的是 ( )A.int(8.9)B."happy"[1:3]=="app"C.168∥10%10==8D.2+5**2∥2!=15答案 D10.下列Python表達(dá)式的值為False的是 ( )A.2**5>5**2 B.2 in ["2","5"]C.5∥2==int(5/2) D.2%5!=1答案 B11.有字符串s="Congratulations",若對其中的元素進(jìn)行s[1:4]訪問,則結(jié)果為 ( )A."Cong" B."Con" C."ongr" D."ong"答案 D12.已知列表list1=[3,4,"5",56],則表達(dá)式"print(5 in list1)"運(yùn)行后結(jié)果為 ( )A.True B.False C.1 D.0答案 B13.下列Python表達(dá)式中,與Len("信息滿分")的值相同的個數(shù)是 ( )①int("10",16)**1/2 ②abs(int(-4.1))③4%5 ④"20220114"[7:]A.1 B.2 C.3 D.4答案 B14.已知列表List1=[1,3,5,2,4],要在列表List1中的最前面添加元素9,則下列操作可行的是 ( )A.List1=9+List1B.List1="9"+List1C.List1=[9]+List1D.List1=List1+[9]答案 C解析 本題考查的是列表操作。在列表中添加元素,元素要用[]括起來,并且要添加在列表List1的最前面,因此操作可行的是List1=[9]+List1,答案為C。15.某超市用13位數(shù)字標(biāo)識商品信息,其中8~12位是表示商品名的代碼,用字符串變量s存儲商品的信息碼(例如:s="9787100109796",商品名代碼是"10979"),下列Python表達(dá)式中能取出商品名代碼的是 ( )A.s[-6:-1] B.s[7:11]C.s[8:12] D.s[7:-2]答案 A16.下列關(guān)于Python基本數(shù)據(jù)結(jié)構(gòu)的描述,正確的是 ( )A.字符串不能由0個字符組成,只能由多個字符組成B.不同類型的元素可以存在于同一列表中C.列表元素能通過索引來定位而字符串不能D.字典創(chuàng)建后不能進(jìn)行增刪操作答案 B17.已知x="蘋果,50",y=["蘋果",50],z={"蘋果":50},下列Python表達(dá)式的值為True,正確的是 ( )A.x[-4::-1]==y[0]B.x[3:5]==y[1]C.y[1] in zD.z[y[0]]==50答案 D18.下列關(guān)于Python表達(dá)式描述錯誤的是 ( )A."apple"[1]>"banana"[3]的結(jié)果為TrueB.變量s的值為"ABC",s[:]>s[::-1]的結(jié)果為TrueC.30%7*4+7∥3**3 的值為 8D.{1:2,2:1}=={2:1,1:2}的結(jié)果為True答案 B19.已知字典dict1={101:"張三",102:"李四",103:"王五"},下列語句執(zhí)行后會出現(xiàn)錯誤的是 ( )A.print(dict1[101]) B.dict1[102]="范進(jìn)"C.dict1["趙六"]=105 D.print(dict1["王五"])答案 D20.某校高二年級舉行田徑運(yùn)動會,若用Xm={"100米":1,"200米":0,"1000米":1,"鉛球":1,"跳遠(yuǎn)":0},其中0表示未報名,1表示報名,來存儲小明的報名數(shù)據(jù),現(xiàn)要取消小明的1000米報名,下列Python語句可行的是 ( )A.Xm["1000米"]=0B.Xm["1000米"][1]=0C.Xm[2]=0D.Xm."1000米"=0答案 A解析 本題考查字典的相關(guān)知識。字典是無序的數(shù)據(jù)結(jié)構(gòu),因此獲取字典Xm中鍵"1000米"對應(yīng)值的方法為Xm["1000米"],A選項可以修改字典的值。21.下列表達(dá)式的值為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解析 本題主要考查的是表達(dá)式運(yùn)算。"abs"*2的結(jié)果為"absabs",字符串比較大小是比較對應(yīng)字符的ASCII碼,因此"absabs"<="abt",答案為C。22.已知字典dict1={1:"red",2:"green",3:"blue"},執(zhí)行語句dict1[4]="white"后,字典dict1的內(nèi)容為 ( )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解析 本題主要考查的是字典。當(dāng)鍵在字典中不存在時,字典名[鍵]=值的功能是在字典中添加鍵值對,因此答案為C。二、能力提升23.已知 food="milkeggbread",feel={1:"love",2:"like",3:"hate"}, people=["he","she","it"],則表達(dá)式 people[2]+feel[2][2:4]+food[1::4]的值是 ( )A.itkeige B.itteige C.itkemer D.itikeige答案 A24.有如下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執(zhí)行該程序段后,ans的值為 ( )A.1 B.2 C.3 D.4答案 A25.已知字典 dic={"姓名":"小明","語文":115,"數(shù)學(xué)":120,"英語":108},下列說法不正確的是 ( )A.dic["語文"]+ dic["數(shù)學(xué)"]+ dic["英語"]的值是 343B.若要將學(xué)生姓名更改為"小華",可執(zhí)行語句 dic["姓名"]="小華"C.若要添加該同學(xué)的技術(shù)成績?yōu)?75,可執(zhí)行語句 dic["技術(shù)"]=75D.dic["英語"] in dic 的值為 True答案 D26.有如下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]]執(zhí)行該程序段后,變量n的值為 ( )A.1 B.2 C.3 D.4答案 C27.已知列表list1=[1,2,3,4],執(zhí)行語句list1[2]=5后,列表a1中的內(nèi)容為 ( )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"),執(zhí)行語句list1[2:]=list("Python")后,列表list1中的內(nèi)容為 ( )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解析 本題考查的是列表的替換操作。列表在使用切片賦值時,可以使用與原序列不等長的序列將切片內(nèi)容替換。list1[2:]表示索引為2位置至最后一個元素的位置,即將列表list1中第3至最后一個元素內(nèi)容替換為"Python",因此,答案為C。29.已知list1=[2,3,5],執(zhí)行語句list1[1:1]=[7,8,9]后,列表list1中的內(nèi)容為 ( )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},執(zhí)行語句dict1['tel']=13867238656后,字典dict1中的內(nèi)容為 ( )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}],則要訪問文具類的第二個商品的名稱和單價,其正確的表達(dá)式為 ( )A.goods_list["文具"][1],prices[0]["筆記本"]B.goods_list["文具"][1],prices[1]["筆記本"]C.goods_list["文具"][2],prices[0]["筆記本"]D.goods_list["文具"][2],prices[1]["筆記本"]答案 B32.某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程序運(yùn)行后,變量s的值為 ( )A.8 B.9 C.10 D.11答案 D(共74張PPT)課時2 Python基本數(shù)據(jù)結(jié)構(gòu)第三章 算法的程序?qū)崿F(xiàn)1.掌握Python字符串、列表、字典三種基本數(shù)據(jù)結(jié)構(gòu)的使用方法。2.能根據(jù)實(shí)際需求選用合適的數(shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù)。目 錄CONTENTS知識梳理01例題精析02隨堂檢測03鞏固與提升04知識梳理1一、字符串字符串是用單引號(')、雙引號(")或三引號(''')括起來的一個字符序列,起始和末尾的引號必須要一致。1.字符串的特點(diǎn)(1)字符串是不可變對象。即一旦創(chuàng)建了一個字符串,那么這個字符串的內(nèi)容是不可改變的。(2)通過索引來訪問字符串中的字符。索引表示字符在字符串的位置,第一個元素的索引號是0,第二個元素的索引號是1,以此類推。2.字符串的切片操作通過字符串的切片操作可以獲得字符串的一個子串。格式為:字符串名[start:end:step]step默認(rèn)為1,表示返回下標(biāo)從start到end-1的字符構(gòu)成的一個子串。二、列表列表是由0個或多個元素組成的序列,其中的元素可以是數(shù)字、字符串等混合類型的數(shù)據(jù),甚至是其他的列表。1.列表的特點(diǎn)(1)列表用[]表示,元素間用逗號分隔,不同類型的元素可以存儲在同一列表中。(2)列表的大小是可變的,可以根據(jù)需要增加或縮小。(3)列表是可變對象。一個列表被創(chuàng)建后,可以直接修改列表中的元素值。2.列表的訪問列表中的元素是通過索引來定位的,第一個元素的索引號是0。列表中的元素可以通過索引進(jìn)行訪問。3.列表的切片操作列表的切片形式為list[i:j:k],i為起始位置索引(包含),默認(rèn)為0,j為終止位置索引(不含),默認(rèn)至序列尾;k為切片間隔,默認(rèn)為1。i,j,k使用默認(rèn)值時可省略。如有一列表list1=["姓名","馬小云","年齡",18,"身高",1.75],則list1[0:2]=["姓名","馬小云"]。4.列表的創(chuàng)建方法創(chuàng)建名為list1的列表:list1=[元素1,元素2,…,元素n]5.列表的常用函數(shù)函數(shù) 功能append(x) 在列表尾部添加元素xremove(x) 在列表中刪除元素xinsert(i,x) 在i位置插入元素xpop(i) 刪除i位置的元素sort() 對列表中的元素進(jìn)行升序排序三、字典1.字典特點(diǎn)字典是鍵值對的集合,即字典中的每個元素包含兩部分內(nèi)容:鍵和值。鍵通常用字符串或數(shù)值來表示,值可以是任意類型的數(shù)據(jù),鍵必須是不可變對象,在字典中必須是唯一的。鍵和值兩者一一對應(yīng),且每個鍵只能對應(yīng)一個值。通過鍵可以找到與其有關(guān)的值,反之則不行。鍵和值在字典中以成對的形式出現(xiàn),鍵-值用冒號分隔,各個對之間用逗號分隔,所有這些都包括在花括號“{}”中。字典中的元素是沒有順序的,引用元素時以鍵為索引。2.字典的創(chuàng)建方法創(chuàng)建名為dict1的字典:dict1={鍵1:值1,鍵2:值2,…,鍵n:值n}3.字典的常見操作操作命令或函數(shù) 功能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位數(shù)字標(biāo)識商品信息,其中8~12位是表示商品名的代碼,用字符串變量s存儲商品的信息碼(例如:s="9787100109796",商品名代碼是"10979"),下列Python表達(dá)式中能取出商品名代碼的是 ( )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位對應(yīng)的索引號為6至13,第14位也可以用索引號-4表示。C例2 在Python中若字符串s="ABC",有下列表達(dá)式:①s[len(s)-1:0:-1] ②s[-1:-len(s)-1:-1] ③s[::-1] ④s[len(s)-1:-1:-1]其中結(jié)果為"CBA"的是( )A.①② B.①③ C.②③ D.③④解析 本題考查字符串的切片。-1表示字符串最后一個字符的位置。①中索引號為0的字符取不到。④中索引號為-1的取不到。C變式訓(xùn)練2 左右對稱的字符串稱回文串。若要判斷字符串s是否為回文串,可以先找到s的中間位置mid=len(s)∥2;再采用切片操作取出s的左半部分left=s[0:mid];然后取出s的右半部分并反轉(zhuǎn),存儲在變量right中;若left與right相等,則為回文串。則下列表達(dá)式能正確表達(dá)變量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選項表示方法不規(guī)范。C選項切片是一個左閉右開的區(qū)間,mid位置取不到。D選項-1表示最后一個位置,-mid表示從右往左的一半位置,若要取到該位置,需再加上步長。D解析 本題主要考查字符串索引及切片的內(nèi)容,字符串列表正索引從0開始,負(fù)索引從-1開始,切片是為前閉后開區(qū)間,list1中只有7個數(shù)據(jù),因此最后一個數(shù)據(jù)為list[6],不存在list[7],故答案應(yīng)選擇B。B變式訓(xùn)練3 若有列表a=[1,2,3,4,5],則下列表達(dá)式值為True的是 ( )A.'1' in a B.5 in a C.[1] in a D.0 in a解析 本題考查的是Python中列表和“in”運(yùn)算符。A選項,'1'是字符,不是數(shù)字,所以值為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]的結(jié)果是 ( )A."PythonJava" B."C++Python"C."+" D."t"解析 本題考查列表和字符串的切片。s[1]的值為"Python","Python"[2]的值為"t"。D變式訓(xùn)練4 已知list=["Word","for","sent","city","piano"],則list[3][2]的返回值為 ( )A."e" B."o" C."t" D."a"解析 本題考查列表的相關(guān)知識。已知list=["Word,"for,"sent","city","piano"],list[3][2]取的是第4個字符串中的第3個字符,即list[3][2]="t"。C例5 已知字典dic存放學(xué)生的姓名和對應(yīng)的語數(shù)英成績,dic={"姓名":"小紅","語文":101, "數(shù)學(xué)":118,"英語":132},現(xiàn)要在字典dic中增加一個鍵為“技術(shù)”,值為“97”的元素,下列語句正確的是 ( )A.dic[技術(shù)]=97B.dic["技術(shù)"]=["技術(shù)":97]C.dic["技術(shù)"]=97D.dic["技術(shù)"]={97}解析 本題主要考查字典的概念及操作。Python中字典中數(shù)據(jù)以鍵值對的形式存在,鍵值之間用冒號隔開,鍵值對之間用逗號隔開。讀取字典的值、新建鍵值對和修改鍵值對方式均為:字典名[鍵]=值.C變式訓(xùn)練5 已知字典dict1={1001:"Mali",1002:"Jack",1003:"Rose",1004:"John"},現(xiàn)要將鍵為1002的值更新為"Alice",下列語句正確的是( )A.dict1[1002]="Alice"B.dict1[1002:"Jack"]=[1002:"Alice"]C.dict1[1002]={"Alice"}D.dict1[1]="Alice"解析 本題主要考查的是字典值的修改操作。對字典中存在的鍵值對賦值,新賦的值就會覆蓋原有的值,這樣即可改變字典中的鍵值對,因此答案為A。A例6 字典 data 中存儲了如下數(shù)據(jù):{"課程" :["舞蹈" , "Python" , "數(shù)學(xué)"], "地點(diǎn)":["舞蹈房", "計算機(jī)房", "教室"], "時長" :["60 分鐘","40 分鐘", "90 分鐘"]},若將"數(shù)學(xué)"課的時長調(diào)整為"70 分鐘",以下操作可行的是 ( )A.data[2][2]= "70 分鐘"B.data["時長"][-1]= "70 分鐘"C.data[-1][2]= "70 分鐘"D.data["時長"][3]= "70 分鐘"解析 本題考查字典的操作。字典某個鍵包含多個值,因此需用列表來表示。字典中鍵是無序的,但列表是有序的,可能采用索引來表示。數(shù)學(xué)學(xué)科的時長保存在時長鍵中,取出時長的方法為data["時長"],其對應(yīng)的值有["60 分鐘","40 分鐘", "90 分鐘"],而數(shù)學(xué)學(xué)科的索引為2或-1。B變式訓(xùn)練6 字典cj中存有小胡、小李和小夏同學(xué)某次考試的成績數(shù)據(jù),并且成績數(shù)據(jù)按語文、數(shù)學(xué)、英語的科目順序進(jìn)行存放。已知cj={"小胡":[85,93,88],"小李":[88,82,78],"小夏":[90,75,89]},現(xiàn)要讀取小李同學(xué)的數(shù)學(xué)科目成績,下列表達(dá)式正確的是 ( )A.cj[1][1] B.cj["小李"][3:5]C.cj["小李"][1] D.cj["小李"][2]解析 本題考查字典和列表的基本操作。小李同學(xué)的科目成績cj["小李"],即[88,82,78],而數(shù)學(xué)學(xué)科的索引為1。C隨堂檢測31.已知變量s="2022jiaxing",則表達(dá)式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"的表達(dá)式是( )A.motto[1:9] B.motto[1:10]C.motto[0:8] D.motto[0:9]D解析 本題考查字符串、列表的切片相關(guān)知識。切片的正索引是從“0”開始,且最后索引截止(不取)。3.已知s="3.141592654",則s[4:6]+s[-1]返回值為 ( )A."414" B."1594" C."154" D."19"C解析 本題主要考查字符串索引及切片的內(nèi)容,字符串列表正索引從0開始,負(fù)索引從-1開始,切片是為前閉后開區(qū)間,s[4,6]只包括索引為4、5的字符,故答案為C。4.已知變量s="2022py",則表達(dá)式s[2]*2+s[-2::]的值是 ( )A."22p" B."4py" C."22py" D."4p"C5.已知變量s=["123","4567","789"],則表達(dá)式s[1][1::-1]*2+s[-1][1]的值是 ( )A.'45458' B.'54548' C.'56568' D.'67678'B解析 本題考查列表和字符串的切片。s[1]的值為"4567",[1::-1]中第2個參數(shù)省略,默認(rèn)為0,因此s[1][1::-1]值為"54",再將其重復(fù)兩次,s[-1]的值為"789",s[-1][1]的值為"8"。6.下列Python表達(dá)式的值為True的是 ( )A.123∥10%10**2==4B."BH005"[:2]=="BH0"C."st" in "student"D.int(5.64)==6C7.已知s="a,b,c,d,e,f",執(zhí)行s[2:3]=" "后,s的值為 ( )A."ab,c,d,e,f" B. "a,,b,c,d,e,f"C."a,c,d,e,f" D.程序報錯,無法執(zhí)行D8.若n='PythonPythonPython',則表達(dá)式n[3::3]的值為 ( )A.'hPhPh' B.'pyt'C.'tntntn' D.'nhynhynhy'A9.已知變量 x='BigWorld',下列表達(dá)式的值為True的是 ( )A.'big' in x B.x[3:-1]=='World'C.x*3>'OK' D.x*2==x+xD10.下列Python表達(dá)式值為True的是 ( )A. "average"[3:5]== "er"B.30%7+10∥2**3==3C.abs(int(-4.95))==5D.4 in range(4)B11.若a="20230678",b=["2","4","6"],則表達(dá)式a[5:]+b[2:1:-1]*3的值是 ( )A."24" B."696"C."678666" D."0678444"CC13.已知字典dict1={1:"red",2:"green",3:"blue"},則dict1[2]的值為 ( )A.green B."green"C.blue D."blue"B解析 本題主要考查的是字典。dict1是字典,dict1[2]表示的是鍵為2對應(yīng)的值,鍵為2對應(yīng)的值為"green",因此,答案為B。14.使用字典Oil_dic={"92號":8.73,"95號":9.14}存儲油價信息,經(jīng)核實(shí)后92號油價是8.61,正確修改的語句是 ( )A.Oil_dic[0]=8.61B.Oil_dic[92號]=8.61C.Oil_dic[1]=8.61D.Oil_dic["92號"]=8.61D15.Python中字典dict={"米飯":116,"蘋果":53,"牛奶":54,"巧克力":589}存儲的是不同食物的熱量,程序中若要將其中牛奶的熱量值改為60,可用的語句為 ( )A.dict{"牛奶"}=60 B.dict["牛奶"]=60C.dict[2]=60 D.dict={"牛奶":60}B解析 本題考查字典的修改。dict是字典,dict["牛奶"]表示的是鍵為"牛奶"對應(yīng)的值,選項B正確。16.某超市部分商品的價格用Python存儲在列表prices中,prices=[{"土豆":5,"黃瓜":6,"豆角":4},{"書包":40,"筆記本":7,"鉛筆":2},{"果凍":12,"薯片":10,"酸奶":14}],若要訪問果凍的價格,則正確的表達(dá)式為 ( )A.prices[2]["果凍"] B.prices[3]["果凍"]C.prices[2][1] D.prices[3][0]A4鞏固與提升基礎(chǔ)鞏固能力提升A解析 本題考查字符串的切片。2.有如下Python程序段:a="1357"list1=["Car","Bus","Bike"]list1[1]=a[1:3]print(list1)該程序段運(yùn)行后的結(jié)果是( )A.['Car','Bus','Bike'] B.['Car',35,'Bike']C.['Car','35','Bike'] D.['Car','3','5','Bike']C解析 本題考查字符串和列表的相關(guān)知識。對字符串作切片操作時,只能取結(jié)束位置所表示的索引號的前一個位置,所以a[1:3]所對應(yīng)的子串為"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,結(jié)果為"bd",s[-1:-7:-2]逆序步長為2,結(jié)果為"hfd",因此結(jié)果為A選項。4.若a="3.1415926",b=[1,"5",11],則表達(dá)式a[-2:]+b[1]*2的值是 ( )A."2655" B."36" C."92655" D."81"A5.已知s='ilovepython',則s[1:6:2]+s[-2:-8:-2]的值是 ( )A.'lvpotp' B.'lvptop' C.'lvpyto' D.'ioeyto'A6.下列表達(dá)式中數(shù)值最大的是 ( )A.len("12"*4) B.round(3.2,0)**2C.int(32.9)%11 D. abs(-20)//3C7.已知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])CA9.下列表達(dá)式的值為True的是 ( )A.int(8.9)B."happy"[1:3]=="app"C.168∥10%10==8D.2+5**2∥2!=15D10.下列Python表達(dá)式的值為False的是 ( )A.2**5>5**2 B.2 in ["2","5"]C.5∥2==int(5/2) D.2%5!=1B11.有字符串s="Congratulations",若對其中的元素進(jìn)行s[1:4]訪問,則結(jié)果為 ( )A."Cong" B."Con" C."ongr" D."ong"D12.已知列表list1=[3,4,"5",56],則表達(dá)式"print(5 in list1)"運(yùn)行后結(jié)果為 ( )A.True B.False C.1 D.0BB13.下列Python表達(dá)式中,與Len("信息滿分")的值相同的個數(shù)是 ( )①int("10",16)**1/2 ②abs(int(-4.1)) ③4%5 ④"20220114"[7:]A.1 B.2 C.3 D.414.已知列表List1=[1,3,5,2,4],要在列表List1中的最前面添加元素9,則下列操作可行的是 ( )A.List1=9+List1B.List1="9"+List1C.List1=[9]+List1D.List1=List1+[9]C解析 本題考查的是列表操作。在列表中添加元素,元素要用[]括起來,并且要添加在列表List1的最前面,因此操作可行的是List1=[9]+List1,答案為C。15.某超市用13位數(shù)字標(biāo)識商品信息,其中8~12位是表示商品名的代碼,用字符串變量s存儲商品的信息碼(例如:s="9787100109796",商品名代碼是"10979"),下列Python表達(dá)式中能取出商品名代碼的是 ( )A.s[-6:-1] B.s[7:11]C.s[8:12] D.s[7:-2]A16.下列關(guān)于Python基本數(shù)據(jù)結(jié)構(gòu)的描述,正確的是 ( )A.字符串不能由0個字符組成,只能由多個字符組成B.不同類型的元素可以存在于同一列表中C.列表元素能通過索引來定位而字符串不能D.字典創(chuàng)建后不能進(jìn)行增刪操作B17.已知x="蘋果,50",y=["蘋果",50],z={"蘋果":50},下列Python表達(dá)式的值為True,正確的是 ( )A.x[-4::-1]==y[0]B.x[3:5]==y[1]C.y[1] in zD.z[y[0]]==50DBDA20.某校高二年級舉行田徑運(yùn)動會,若用Xm={"100米":1,"200米":0,"1000米":1,"鉛球":1,"跳遠(yuǎn)":0},其中0表示未報名,1表示報名,來存儲小明的報名數(shù)據(jù),現(xiàn)要取消小明的1000米報名,下列Python語句可行的是 ( )A.Xm["1000米"]=0B.Xm["1000米"][1]=0C.Xm[2]=0D.Xm."1000米"=0解析 本題考查字典的相關(guān)知識。字典是無序的數(shù)據(jù)結(jié)構(gòu),因此獲取字典Xm中鍵"1000米"對應(yīng)值的方法為Xm["1000米"],A選項可以修改字典的值。C21.下列表達(dá)式的值為True的是 ( )A.not ("h" in "hand")B."t" in ["tt","text","teacher","T"]C."abs"*2<="abt"D."some" not in ["someone","some","somy"]解析 本題主要考查的是表達(dá)式運(yùn)算。"abs"*2的結(jié)果為"absabs",字符串比較大小是比較對應(yīng)字符的ASCII碼,因此"absabs"<="abt",答案為C。C22.已知字典dict1={1:"red",2:"green",3:"blue"},執(zhí)行語句dict1[4]="white"后,字典dict1的內(nèi)容為 ( )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}解析 本題主要考查的是字典。當(dāng)鍵在字典中不存在時,字典名[鍵]=值的功能是在字典中添加鍵值對,因此答案為C。A23.已知 food="milkeggbread",feel={1:"love",2:"like",3:"hate"}, people=["he","she","it"],則表達(dá)式 people[2]+feel[2][2:4]+food[1::4]的值是 ( )A.itkeige B.itteigeC.itkemer D.itikeigeA24.有如下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執(zhí)行該程序段后,ans的值為( )A.1 B.2 C.3 D.4DC26.有如下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]]執(zhí)行該程序段后,變量n的值為( )A.1 B.2 C.3 D.4C27.已知列表list1=[1,2,3,4],執(zhí)行語句list1[2]=5后,列表a1中的內(nèi)容為 ( )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。C28.已知list1=list("php"),執(zhí)行語句list1[2:]=list("Python")后,列表list1中的內(nèi)容為 ( )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']解析 本題考查的是列表的替換操作。列表在使用切片賦值時,可以使用與原序列不等長的序列將切片內(nèi)容替換。list1[2:]表示索引為2位置至最后一個元素的位置,即將列表list1中第3至最后一個元素內(nèi)容替換為"Python",因此,答案為C。D29.已知list1=[2,3,5],執(zhí)行語句list1[1:1]=[7,8,9]后,列表list1中的內(nèi)容為 ( )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。D30.已知dict1={'name':'Jhon','age':20,'height':1.82},執(zhí)行語句dict1['tel']=13867238656后,字典dict1中的內(nèi)容為 ( )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。B31.某超市商品分類和價格用Python分別存儲在list和price中。若goods_list={"蔬菜":["土豆","黃瓜","豆角"],"文具":["書包","筆記本","鉛筆"],"零食":["果凍","薯片","酸奶"]},prices=[{"土豆":5,"黃瓜":6,"豆角":4},{"書包":40,"筆記本":7,"鉛筆":2},{"果凍":12,"薯片":10,"酸奶":14}],則要訪問文具類的第二個商品的名稱和單價,其正確的表達(dá)式為 ( )A.goods_list["文具"][1],prices[0]["筆記本"]B.goods_list["文具"][1],prices[1]["筆記本"]C.goods_list["文具"][2],prices[0]["筆記本"]D.goods_list["文具"][2],prices[1]["筆記本"]D32.某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程序運(yùn)行后,變量s的值為( )A.8 B.9 C.10 D.11課時2 Python基本數(shù)據(jù)結(jié)構(gòu)課時目標(biāo)1.掌握Python字符串、列表、字典三種基本數(shù)據(jù)結(jié)構(gòu)的使用方法。2.能根據(jù)實(shí)際需求選用合適的數(shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù)。一、字符串字符串是用單引號(')、雙引號(″)或三引號(''')括起來的一個字符序列,起始和末尾的引號必須要一致。1.字符串的特點(diǎn)(1)字符串是不可變對象。即一旦創(chuàng)建了一個字符串,那么這個字符串的內(nèi)容是不可改變的。(2)通過索引來訪問字符串中的字符。索引表示字符在字符串的位置,第一個元素的索引號是0,第二個元素的索引號是1,以此類推。2.字符串的切片操作通過字符串的切片操作可以獲得字符串的一個子串。格式為:字符串名[start:end:step]step默認(rèn)為1,表示返回下標(biāo)從start到end-1的字符構(gòu)成的一個子串。二、列表列表是由0個或多個元素組成的序列,其中的元素可以是數(shù)字、字符串等混合類型的數(shù)據(jù),甚至是其他的列表。1.列表的特點(diǎn)(1)列表用[]表示,元素間用逗號分隔,不同類型的元素可以存儲在同一列表中。(2)列表的大小是可變的,可以根據(jù)需要增加或縮小。(3)列表是可變對象。一個列表被創(chuàng)建后,可以直接修改列表中的元素值。2.列表的訪問列表中的元素是通過索引來定位的,第一個元素的索引號是0。列表中的元素可以通過索引進(jìn)行訪問。3.列表的切片操作列表的切片形式為list[i:j:k],i為起始位置索引(包含),默認(rèn)為0,j為終止位置索引(不含),默認(rèn)至序列尾;k為切片間隔,默認(rèn)為1。i,j,k使用默認(rèn)值時可省略。如有一列表list1=[″姓名″,″馬小云″,″年齡″,18,″身高″,1.75],則list1[0:2]=[″姓名″,″馬小云″]。4.列表的創(chuàng)建方法創(chuàng)建名為list1的列表:list1=[元素1,元素2,…,元素n]5.列表的常用函數(shù)函數(shù) 功能append(x) 在列表尾部添加元素xremove(x) 在列表中刪除元素xinsert(i,x) 在i位置插入元素xpop(i) 刪除i位置的元素sort() 對列表中的元素進(jìn)行升序排序三、字典1.字典特點(diǎn)字典是鍵值對的集合,即字典中的每個元素包含兩部分內(nèi)容:鍵和值。鍵通常用字符串或數(shù)值來表示,值可以是任意類型的數(shù)據(jù),鍵必須是不可變對象,在字典中必須是唯一的。鍵和值兩者一一對應(yīng),且每個鍵只能對應(yīng)一個值。通過鍵可以找到與其有關(guān)的值,反之則不行。鍵和值在字典中以成對的形式出現(xiàn),鍵-值用冒號分隔,各個對之間用逗號分隔,所有這些都包括在花括號“{}”中。字典中的元素是沒有順序的,引用元素時以鍵為索引。2.字典的創(chuàng)建方法創(chuàng)建名為dict1的字典:dict1={鍵1:值1,鍵2:值2,…,鍵n:值n}3.字典的常見操作操作命令或函數(shù) 功能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位數(shù)字標(biāo)識商品信息,其中8~12位是表示商品名的代碼,用字符串變量s存儲商品的信息碼(例如:s=″9787100109796″,商品名代碼是″10979″),下列Python表達(dá)式中能取出商品名代碼的是( )A.s[-6:-1] B.s[7:11]C.s[8:12] D.s[7:-2]聽課筆記: 變式訓(xùn)練1 字符串變量s中存有小李身份證號碼(s=″331004200608160037″,其中7至14位“20060816” 代表出生日期)。若想提取小李身份證中的出生日期,下列Python表達(dá)式有錯誤的是( )A.s[-12:-4] B.s[6:14]C.s[7:15] D.s[6:-4]例2 在Python中若字符串s=″ABC″,有下列表達(dá)式:①s[len(s)-1:0:-1] ②s[-1:-len(s)-1:-1]③s[::-1] ④s[len(s)-1:-1:-1]其中結(jié)果為″CBA″的是( )A.①② B.①③C.②③ D.③④聽課筆記: 變式訓(xùn)練2 左右對稱的字符串稱回文串。若要判斷字符串s是否為回文串,可以先找到s的中間位置mid=len(s)∥2;再采用切片操作取出s的左半部分left=s[0:mid];然后取出s的右半部分并反轉(zhuǎn),存儲在變量right中;若left與right相等,則為回文串。則下列表達(dá)式能正確表達(dá)變量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],現(xiàn)在想要得到列表的最后一個元素29,下列選項中不能實(shí)現(xiàn)該功能的是( )A.list1[6] B.list1[7]C.list1[-1] D.list1[6:7]聽課筆記: 變式訓(xùn)練3 若有列表a=[1,2,3,4,5],則下列表達(dá)式值為True的是( )A.'1' in a B.5 in aC.[1] in a D.0 in a例4 已知s=[″C++″,″Python″,″Java″],則s[1][2]的結(jié)果是( )A.″PythonJava″ B.″C++Python″C.″+″ D.″t″聽課筆記: 變式訓(xùn)練4 已知list=[″Word″,″for″,″sent″,″city″,″piano″],則list[3][2]的返回值為( )A.″e″ B.″o″C.″t″ D.″a″例5 已知字典dic存放學(xué)生的姓名和對應(yīng)的語數(shù)英成績,dic={″姓名″:″小紅″,″語文″:101, ″數(shù)學(xué)″:118,″英語″:132},現(xiàn)要在字典dic中增加一個鍵為“技術(shù)”,值為“97”的元素,下列語句正確的是( )A.dic[技術(shù)]=97B.dic[″技術(shù)″]=[″技術(shù)″:97]C.dic[″技術(shù)″]=97D.dic[″技術(shù)″]={97}聽課筆記: 變式訓(xùn)練5 已知字典dict1={1001:″Mali″,1002:″Jack″,1003:″Rose″,1004:″John″},現(xiàn)要將鍵為1002的值更新為″Alice″,下列語句正確的是( )A.dict1[1002]=″Alice″B.dict1[1002:″Jack″]=[1002:″Alice″]C.dict1[1002]={″Alice″}D.dict1[1]=″Alice″例6 字典 data 中存儲了如下數(shù)據(jù):{″課程″ :[″舞蹈″ , ″Python″ , ″數(shù)學(xué)″], ″地點(diǎn)″:[″舞蹈房″, ″計算機(jī)房″, ″教室″], ″時長″ :[″60 分鐘″,″40 分鐘″, ″90 分鐘″]},若將″數(shù)學(xué)″課的時長調(diào)整為″70 分鐘″,以下操作可行的是( )A.data[2][2]= ″70 分鐘″B.data[″時長″][-1]= ″70 分鐘″C.data[-1][2]= ″70 分鐘″D.data[″時長″][3]= ″70 分鐘″聽課筆記: 變式訓(xùn)練6 字典cj中存有小胡、小李和小夏同學(xué)某次考試的成績數(shù)據(jù),并且成績數(shù)據(jù)按語文、數(shù)學(xué)、英語的科目順序進(jìn)行存放。已知cj={″小胡″:[85,93,88],″小李″:[88,82,78],″小夏″:[90,75,89]},現(xiàn)要讀取小李同學(xué)的數(shù)學(xué)科目成績,下列表達(dá)式正確的是( )A.cj[1][1] B.cj[″小李″][3:5]C.cj[″小李″][1] D.cj[″小李″][2]1.已知變量s=″2022jiaxing″,則表達(dá)式s[1:len(s)∥2]+s[2]*2的值是( )A.″20224″ B″2026″C.″022j22″ D.″022j4″2.已知motto=″Beautifulisbetterthanugly.″,得到切片″Beautiful″的表達(dá)式是( )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″,則表達(dá)式s[2]*2+s[-2::]的值是( )A.″22p″ B.″4py″C.″22py″ D.″4p″5.已知變量s=[″123″,″4567″,″789″],則表達(dá)式s[1][1::-1]*2+s[-1][1]的值是( )A.'45458' B.'54548'C.'56568' D.'67678'6.下列Python表達(dá)式的值為True的是( )A.123∥10%10**2==4B.″BH005″[:2]==″BH0″C.″st″ in ″student″D.int(5.64)==67.已知s=″a,b,c,d,e,f″,執(zhí)行s[2:3]=″ ″后,s的值為( )A.″ab,c,d,e,f″ B. ″a,,b,c,d,e,f″C.″a,c,d,e,f″ D.程序報錯,無法執(zhí)行8.若n='PythonPythonPython',則表達(dá)式n[3::3]的值為( )A.'hPhPh' B.'pyt'C.'tntntn' D.'nhynhynhy'9.已知變量 x='BigWorld',下列表達(dá)式的值為True的是( )A.'big' in x B.x[3:-1]=='World'C.x*3>'OK' D.x*2==x+x10.下列Python表達(dá)式值為True的是( )A. ″average″[3:5]== ″er″B.30%7+10∥2**3==3C.abs(int(-4.95))==5D.4 in range(4)11.若a=″20230678″,b=[″2″,″4″,″6″],則表達(dá)式a[5:]+b[2:1:-1]*3的值是( )A.″24″ B.″696″C.″678666″ D.″0678444″12.以下Python表達(dá)式中,下列選項的值與其他三項不同的是( )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}存儲油價信息,經(jīng)核實(shí)后92號油價是8.61,正確修改的語句是( )A.Oil_dic[0]=8.61B.Oil_dic[92號]=8.61C.Oil_dic[1]=8.61D.Oil_dic[″92號″]=8.6115.Python中字典dict={″米飯″:116,″蘋果″:53,″牛奶″:54,″巧克力″:589}存儲的是不同食物的熱量,程序中若要將其中牛奶的熱量值改為60,可用的語句為( )A.dict{″牛奶″}=60 B.dict[″牛奶″]=60C.dict[2]=60 D.dict={″牛奶″:60}16.某超市部分商品的價格用Python存儲在列表prices中,prices=[{″土豆″:5,″黃瓜″:6,″豆角″:4},{″書包″:40,″筆記本″:7,″鉛筆″:2},{″果凍″:12,″薯片″:10,″酸奶″:14}],若要訪問果凍的價格,則正確的表達(dá)式為( )A.prices[2][″果凍″] B.prices[3][″果凍″]C.prices[2][1] D.prices[3][0] 展開更多...... 收起↑ 資源列表 課時2 Python基本數(shù)據(jù)結(jié)構(gòu) 學(xué)案 浙教版(2019)必修1.doc 課時2 Python基本數(shù)據(jù)結(jié)構(gòu) 教案 浙教版(2019)必修1.doc 課時2 Python基本數(shù)據(jù)結(jié)構(gòu) 課件(共74張ppt)浙教版(2019)必修1.pptx 縮略圖、資源來源于二一教育資源庫