Python二級(jí)考試Python列表、字典與集合專項(xiàng)訓(xùn)練_第1頁(yè)
Python二級(jí)考試Python列表、字典與集合專項(xiàng)訓(xùn)練_第2頁(yè)
Python二級(jí)考試Python列表、字典與集合專項(xiàng)訓(xùn)練_第3頁(yè)
Python二級(jí)考試Python列表、字典與集合專項(xiàng)訓(xùn)練_第4頁(yè)
Python二級(jí)考試Python列表、字典與集合專項(xiàng)訓(xùn)練_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python二級(jí)考試Python列表、字典與集合專項(xiàng)訓(xùn)練考試時(shí)間:______分鐘總分:______分姓名:______一、選擇題(每題2分,共20分)1.下列哪個(gè)數(shù)據(jù)結(jié)構(gòu)是可變的,且元素可以是任意類型?A.元組B.集合C.字典D.列表2.在Python中,刪除字典`d`中鍵為`'key'`的條目,如果該鍵不存在則不報(bào)錯(cuò),應(yīng)該使用的方法是?A.`d.delete('key')`B.`d.remove('key')`C.`d.pop('key',None)`D.`deld['key']`3.以下哪個(gè)表達(dá)式在Python中表示檢查集合`a`是否是集合`b`的子集?A.`a&b`B.`a<=b`C.`a|b`D.`a^b`4.對(duì)于列表`lst=[1,2,3]`,執(zhí)行`lst[1:2]=[4,5]`后,`lst`的內(nèi)容變?yōu)??A.`[1,2,3]`B.`[1,4,5,2,3]`C.`[1,4,5,3]`D.`[1,2,4,5,3]`5.以下關(guān)于字典`d={'a':1,'b':2}`的描述,錯(cuò)誤的是?A.`d['a']`可以得到值`1`。B.`d.keys()`返回一個(gè)包含所有鍵的視圖對(duì)象。C.`d.get('c',0)`會(huì)返回`0`,且不會(huì)修改字典`d`。D.`d.update({'b':3,'c':4})`后,`d`變?yōu)閌{'a':1,'b':3,'c':4}`。6.下列哪個(gè)方法會(huì)修改原始列表?A.`lst.append(10)`B.`lst=lst+[10]`C.`lst.extend([10])`D.`lst.copy()`7.設(shè)有集合`set1={1,2,3}`和`set2={3,4,5}`,執(zhí)行`ersection(set2)`后得到的結(jié)果是?A.`{1,2,3,4,5}`B.`{3}`C.`{1,2}`D.`{4,5}`8.下列哪個(gè)語(yǔ)句可以創(chuàng)建一個(gè)空列表?A.`lst=()`B.`lst=[]`C.`lst={}`D.`lst=()`9.對(duì)于字典`d={'x':100,'y':200}`,表達(dá)式`d['x']+d.get('z',0)`的值是?A.`100`B.`200`C.`300`D.拋出KeyError異常10.列表推導(dǎo)式`[x2forxinrange(5)ifx%2==0]`的執(zhí)行結(jié)果是什么?A.`[0,1,4]`B.`[0,4,16]`C.`[1,4,9]`D.`[2,4,6]`二、填空題(每空2分,共20分)1.請(qǐng)寫出刪除集合`s={1,2,3}`中所有元素的Python語(yǔ)句:______________。2.要向列表`lst=[10,20,30]`的末尾添加元素`40`,應(yīng)使用方法`______________`。3.設(shè)字典`d={'name':'Alice','age':25}`,要獲取值`25`,應(yīng)使用表達(dá)式`______________`。4.集合`{1,2,3}`與集合`{2,3,4}`的并集是`______________`。5.如果要?jiǎng)?chuàng)建一個(gè)空字典,應(yīng)使用`______________`語(yǔ)法。6.列表`[1,2,3,4,5]`的切片`lst[1:4]`的結(jié)果是列表`______________`。7.使用列表推導(dǎo)式生成`[0,2,4,6,8]`,可以寫作`[xforxinrange(10)if______________]`。8.字典推導(dǎo)式`{(k,v):v*2fork,vin{'a':1,'b':2}.items()}`的執(zhí)行結(jié)果是字典`______________`。9.對(duì)于集合`s={1,2,3}`,表達(dá)式`s.add(4)`執(zhí)行后,集合`s`變?yōu)閌______________`。10.要檢查元素`3`是否在集合`{1,2,3,4}`中,可以使用表達(dá)式`______________`。三、簡(jiǎn)答題(每題5分,共15分)1.請(qǐng)簡(jiǎn)述列表和元組的區(qū)別。2.解釋Python中字典的鍵(key)必須是不可變類型的原因。3.集合有哪些常見的數(shù)學(xué)運(yùn)算?請(qǐng)分別說(shuō)明其含義。四、編程題(共45分)1.(10分)編寫Python代碼,定義一個(gè)列表`fruits=['apple','banana','cherry','date','elderberry']`。要求:*使用`append()`方法添加元素`'fig'`到列表末尾。*使用`pop()`方法移除列表中的第一個(gè)元素,并打印該被移除的元素。*使用列表推導(dǎo)式創(chuàng)建一個(gè)新列表`upper_fruits`,其中包含`fruits`列表中所有水果名稱的大寫形式。*打印最終的`fruits`列表和`upper_fruits`列表。2.(10分)編寫Python代碼,完成以下任務(wù):*定義一個(gè)字典`student_info`,包含鍵`'name'`(值`'Bob'`)、`'age'`(值`30`)和`'major'`(值`'ComputerScience'`)。*添加一個(gè)新的鍵值對(duì)`'grade'`:`'A'`到字典中。*使用`get()`方法嘗試獲取鍵`'gender'`的值,如果不存在則返回`'Unknown'`,并打印結(jié)果。*使用`popitem()`方法移除并打印字典中最后添加的那個(gè)鍵值對(duì)。*使用`del`語(yǔ)句刪除鍵`'age'`及其對(duì)應(yīng)的值,然后打印修改后的字典。3.(15分)編寫Python代碼,處理以下集合操作:*定義集合`set_a={1,2,3,4,5}`和`set_b={4,5,6,7,8}`。*計(jì)算并打印`set_a`和`set_b`的交集。*計(jì)算并打印`set_a`和`set_b`的并集。*計(jì)算并打印`set_a`相對(duì)于`set_b`的差集。*向`set_a`中添加元素`9`和`10`,然后打印更新后的`set_a`。*使用集合推導(dǎo)式創(chuàng)建一個(gè)集合`even_numbers`,包含從`1`到`20`(包含1和20)之間所有偶數(shù)的集合,并打印該集合。4.(10分)編寫Python代碼,實(shí)現(xiàn)以下功能:*定義一個(gè)列表`numbers=[10,5,7,2,8,3,10,6,5,2]`。*使用集合推導(dǎo)式去除`numbers`列表中的重復(fù)元素,得到一個(gè)集合`unique_numbers_set`。*將`unique_numbers_set`轉(zhuǎn)換回列表`unique_numbers_list`。*對(duì)`unique_numbers_list`進(jìn)行排序(升序),得到排序后的列表`sorted_unique_numbers`。*打印`unique_numbers_list`和`sorted_unique_numbers`。---試卷答案一、選擇題1.D解析:列表是可變的,可以包含任意類型的元素。元組是不可變的,元素類型可以是任意但一旦創(chuàng)建不能修改。集合是可變的,元素必須是可哈希的(通常是不可變類型)。2.C解析:`pop(key,default)`方法用于刪除指定鍵的條目,如果鍵不存在則返回默認(rèn)值`None`(或不做任何操作),避免了`KeyError`。`del`語(yǔ)句直接刪除鍵,不存在會(huì)報(bào)錯(cuò)。`remove`用于刪除存在的值,不存在會(huì)報(bào)錯(cuò)。3.B解析:`a<=b`是判斷`a`是否是`b`的真子集的常用方式。`a&b`是交集,`a|b`是并集,`a^b`是對(duì)稱差集。4.C解析:`lst[1:2]`表示從索引1開始到索引2之前(不包括索引2)的切片,即`[2]`。將其賦值為`[4,5]`,相當(dāng)于替換了索引1的那個(gè)元素及其后面的所有元素,結(jié)果為`[1,4,5,3]`。5.B解析:`d.keys()`返回的是一個(gè)視圖對(duì)象(`dict_keys`),不是列表。雖然可以遍歷,但其本質(zhì)不是列表,無(wú)法直接索引或切片。`keys()`,`values()`,`items()`返回的都是視圖。6.C解析:`append()`添加一個(gè)元素到列表末尾,返回`None`,修改原列表。`lst+[10]`創(chuàng)建一個(gè)新列表,賦值給`lst`,是重新賦值。`extend()`將可迭代對(duì)象的元素逐個(gè)添加到列表末尾,修改原列表。`copy()`創(chuàng)建原列表的淺拷貝。7.B解析:`intersection(set2)`計(jì)算兩個(gè)集合的交集,即同時(shí)存在于`set1`和`set2`中的元素`{3}`。8.B解析:`[]`是創(chuàng)建空列表的語(yǔ)法。`()`創(chuàng)建空元組,`{}`創(chuàng)建空字典或集合。9.C解析:`d['x']`獲取鍵`'x'`對(duì)應(yīng)的值`100`。`d.get('z',0)`嘗試獲取鍵`'z'`,不存在則返回默認(rèn)值`0`。兩者相加得`100+0=100`。10.B解析:`range(5)`生成`[0,1,2,3,4]`。`x%2==0`篩選出偶數(shù)`0,2,4`。`x2`計(jì)算平方,得到`[0,4,16]`。二、填空題1.`s.clear()`解析:`clear()`方法是清空集合中所有元素的標(biāo)準(zhǔn)方式。2.`append(40)`解析:`append(obj)`方法將對(duì)象`obj`添加到列表末尾。3.`d['age']`解析:通過(guò)鍵`'age'`直接訪問(wèn)字典`d`中對(duì)應(yīng)的值。4.`{1,2,3,4}`解析:并集包含兩個(gè)集合中所有的元素,不重復(fù)。5.`{}`或`dict()`解析:使用空花括號(hào)`{}`或`dict()`構(gòu)造函數(shù)都可以創(chuàng)建一個(gè)空字典。6.`[2,3,4]`解析:切片`lst[1:4]`包含索引從1到3(不包括4)的元素,即`lst[1]`到`lst[3]`。7.`x%2==0`解析:條件`x%2==0`判斷`x`是否為偶數(shù)。8.`{('a',2),('b',4)}`解析:字典推導(dǎo)式遍歷原字典的鍵值對(duì),將每個(gè)鍵值對(duì)轉(zhuǎn)換為一個(gè)元組作為新字典的鍵,值為原值的兩倍。9.`{1,2,3,4}`解析:`add(element)`方法將元素添加到集合中,如果元素已存在則不改變集合。添加`4`后集合變?yōu)閌{1,2,3,4}`。10.`3in{1,2,3,4}`解析:`in`操作符用于檢查元素是否存在于集合(或列表、字符串等)中。三、簡(jiǎn)答題1.列表是可變的(可以修改內(nèi)容),而元組是不可變的(內(nèi)容創(chuàng)建后不能修改)。列表用`[]`創(chuàng)建,元組用`()`創(chuàng)建(空元組或單個(gè)元素元組需加逗號(hào))。列表主要用于需要修改的數(shù)據(jù)序列,元組通常用于存儲(chǔ)不可變的數(shù)據(jù),或作為字典的鍵。2.字典的鍵必須是不可變類型,因?yàn)樽值鋬?nèi)部使用哈希表來(lái)存儲(chǔ)鍵值對(duì)。哈希表的查找、插入和刪除操作都依賴于鍵的哈希值和唯一性。如果鍵是可變的(如列表),那么在字典插入或查找時(shí),對(duì)鍵的修改可能會(huì)導(dǎo)致其哈希值改變,這將破壞字典內(nèi)部的數(shù)據(jù)結(jié)構(gòu),導(dǎo)致無(wú)法正確找到或訪問(wèn)對(duì)應(yīng)的值。常見的不可變類型包括數(shù)字、字符串、元組(其元素也必須是不可變的)。3.集合的常見數(shù)學(xué)運(yùn)算包括:-并集(Union):兩個(gè)集合中所有元素的合集,每個(gè)元素只出現(xiàn)一次。方法:`|`或`.union()`。-交集(Intersection):兩個(gè)集合中共有的元素。方法:`&`或`.intersection()`。-差集(Difference):在第一個(gè)集合中存在,但不在第二個(gè)集合中的元素。方法:`-`或`.difference()`。-對(duì)稱差集(SymmetricDifference):在任一集合中存在,但不在兩個(gè)集合中同時(shí)存在的元素。方法:`^`或`.symmetric_difference()`。四、編程題1.```pythonfruits=['apple','banana','cherry','date','elderberry']fruits.append('fig')#添加元素removed=fruits.pop(0)#移除第一個(gè)元素并獲取upper_fruits=[fruit.upper()forfruitinfruits]print(removed)#輸出被移除的元素print(fruits)#輸出修改后的fruitsprint(upper_fruits)#輸出upper_fruits```解析:按題目要求依次執(zhí)行`append`、`pop`(注意`pop(0)`移除第一個(gè)元素)、列表推導(dǎo)式生成大寫列表,并打印結(jié)果。2.```pythonstudent_info={'name':'Bob','age':30,'major':'ComputerScience'}student_info['grade']='A'#添加鍵值對(duì)print(student_info.get('gender','Unknown'))#嘗試獲取不存在的鍵,返回默認(rèn)值last_item=student_info.popitem()#移除并返回最后一個(gè)條目print(last_item)#輸出被移除的條目delstudent_info['age']#刪除鍵'age'print(student_info)#輸出修改后的字典```解析:按題目要求使用`update`、`get`、`popitem`、`del`語(yǔ)句修改字典,并打印中間和最終結(jié)果。3.```pythonset_a={1,2,3,4,5}set_b={4,5,6,7,8}print(set_a&set_b)#計(jì)算交集p

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論