




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章復(fù)合數(shù)據(jù)類(lèi)型第6章復(fù)合數(shù)據(jù)類(lèi)型6.1序列的通用操作6.2列表6.3元組6.4集合6.5字典復(fù)合數(shù)據(jù)類(lèi)型序列類(lèi)型字符串列表元組集合類(lèi)型集合映射類(lèi)型字典序列類(lèi)型是一個(gè)元素向量,元素之間存在先后關(guān)系,通過(guò)序列中的索引(位置編號(hào))來(lái)訪(fǎng)問(wèn)數(shù)據(jù)元素,元素之間不排他可重復(fù)。映射類(lèi)型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對(duì),表示為(key,value)。集合類(lèi)型是一個(gè)元素集合,元素之間無(wú)序、不重復(fù)。復(fù)合數(shù)據(jù)類(lèi)型概述6.1序列的通用操作序列類(lèi)型包括字符串(str)、列表(list)和元組(tuple)。a=“Monkey“#字符串b==['Alice','Ben','Candy','Mary','Lucy’]#列表c=(=(“Rat”,“OX”,“Tiger”,“Rabbit”,“Dragon”,“Snake”)#元組序列類(lèi)型都可以進(jìn)行索引、切片、序列相加、序列相乘以及成員資格檢查等操作。Python還有計(jì)算序列長(zhǎng)度、找出最大元素和最小元素等內(nèi)置函數(shù)。6.1.1序列的索引序列名[索引]有兩種索引方式:正向索引和反向索引例如:>>>str1="thisisastring">>>Lst1=["2022100123","張三","男",18]>>>tup1=("物理","化學(xué)","地理","生物","歷史")>>>print(str1[0],Lst1[-1],tup1[3])t18生物6.1.2序列的切片切片就是取出序列中某個(gè)范圍內(nèi)的元素,得到一個(gè)新的序列,原序列不變。一般格式為:序列名[M:N:K]>>>Lst2=[1,2,3,4,5,6,7,8,9]>>>Lst2[1:4]#步長(zhǎng)缺省為1,索引[1,4)結(jié)果:[2,3,4]>>>Lst2[:]#同lst2[::],步長(zhǎng)缺省為1,取出從前往后所有元素[1,2,3,4,5,6,7,8,9]>>>Lst2[::-1]#步長(zhǎng)為-1,取出從后往前所有元素[9,8,7,6,5,4,3,2,1]>>>Lst2[:-2:2]#步長(zhǎng)為2,M缺省為0,取出從[0,-2)步長(zhǎng)為2的元素[1,3,5,7]>>>Lst2[3::2]#步長(zhǎng)為2,取出從3到末尾的步長(zhǎng)為2的元素[4,6,8]>>>lst2[-1::-2]#步長(zhǎng)為-2,N為第一個(gè)元素,取出從-1到0步長(zhǎng)為-2的元素[9,7,5,3,1]6.1.3序列的計(jì)算1.序列相加使用加號(hào)+可以進(jìn)行同類(lèi)型序列的連接操作。例如:>>>[1,2,3]+['a','b','c']#列表相加[1,2,3,'a','b','c']>>>(4,5,6)+(7,8,9)#元組相加(4,5,6,7,8,9)>>>"abc"+"123"#字符串相加'abc123'6.1.3序列的計(jì)算2.序列相乘用整數(shù)n乘以序列會(huì)產(chǎn)生一個(gè)新的序列,在新序列中,原序列將重復(fù)n次。當(dāng)n<1,將返回空序列。例如:>>>a=(1,2,3)>>>2*a(1,2,3,1,2,3)>>>-1*a()6.1.3序列的計(jì)算3.成員資格檢查成員資格檢查用于檢查一個(gè)值是否在序列中,有in和notin兩個(gè)運(yùn)算符,返回True或False。例如:>>>tup1=("物理","化學(xué)","地理","生物","歷史")>>>"音樂(lè)"intup1False>>>"音樂(lè)"notintup1True6.1.4序列處理函數(shù)1.len()、max()、min()函數(shù)len(s):返回序列s的元素個(gè)數(shù)min(s):返回序列s的最小元素max(s):返回序列s的最大元素以下Python表達(dá)式中,哪項(xiàng)的值與其它三項(xiàng)不同(
)。A.len("Nicetomeetyou".split()) B.len("Nice".split())C.sum([1,2,1,0])
D.max([1,2,3,4])2.index方法和count方法s.index(x[,i[,j]]):返回序列s中索引為第i到第j-1項(xiàng)元素中第一次出現(xiàn)元素x的位置。s.count(x):返回序列s中出現(xiàn)x的次數(shù)。6.2列表列表(list)是Python中最常用的復(fù)合數(shù)據(jù)類(lèi)型,可以完成大多數(shù)復(fù)合數(shù)據(jù)結(jié)構(gòu)的操作。列表元素是可變的,也就是列表中的元素的值可修改,也可以增加元素或刪除元素。字符串和元組的元素是不可變的。所以除了序列的通用操作外,列表還有許多專(zhuān)有的操作6.2.1列表的創(chuàng)建1.用[]創(chuàng)建列表列表是用方括號(hào)“[]”括起來(lái)、用逗號(hào)分隔的元素序列>>>elist=[]#創(chuàng)建空列表>>>names=['Alice','Ben','Candy','Mary','Lucy']>>>stud=["2022100212","張三",18,[88,77,89]]>>>print("{}的三門(mén)課的成績(jī)是{},{},{}".format(stud[1],stud[3][0],stud[3][1],stud[3][2]))張三的三門(mén)課的成績(jī)是88,77,89>>>names[::2]#通過(guò)切片訪(fǎng)問(wèn)列表中的元素['Alice','Candy','Lucy']6.2.1列表的創(chuàng)建2.用list()函數(shù)創(chuàng)建列表列表也可以用list()函數(shù)將range()對(duì)象、元組、字符串或其他可迭代類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為列表。>>>numlist=list(range(1,6))#創(chuàng)建一個(gè)包含1到5的整數(shù)列表>>>numlist[1,2,3,4,5]>>>strlist=list("hello")#將字符串轉(zhuǎn)為列表>>>strlst['h','e','l','l','o']>>>tlist=list((1,2,3,4))#將元組(1,2,3,4)轉(zhuǎn)為列表>>>tlist[1,2,3,4] >>>elist2=list()#創(chuàng)建空列表>>>elist2[]列表的注意事項(xiàng):列表必須通過(guò)顯示的數(shù)據(jù)賦值才能生成,簡(jiǎn)單將一個(gè)列表變量賦值給另一個(gè)列表變量不會(huì)生成新的列表通過(guò)切片操作可以生成新的列表,不會(huì)改變?cè)瓉?lái)的列表>>>lst1=[70,80,90]>>>lst2=lst1
>>>id(lst1),id(lst2)(50784384,50784384)>>>lst2[0]=72>>>lst1[72,80,90]>>>x=[1,2,3,4,5,6]>>>y=x[:]>>>y[1,2,3,4,5,6]>>>id(x),id(y)(51019904,51370112)6.2.2列表的專(zhuān)有操作1.列表元素的添加ls.append(x)方法:在列表末尾追加元素ls.insert(i,x)方法:在列表第i個(gè)位置增加新元素xls.extend(lst)方法:將列表lst元素追加到列表ls尾部“+=”運(yùn)算符:
ls+=lst將列表lst元素追加到列表ls尾部“*=”運(yùn)算符:ls*=n更新列表ls,其元素重復(fù)n次append、insert、extend、+=、*=這些操作在添加了新元素后,內(nèi)存地址沒(méi)有發(fā)生變化,屬于原地操作,不會(huì)創(chuàng)建新的列表對(duì)象>>>names=['Alice','Ben']>>>id(names)51371264>>>names.append("Yoyo")#['Alice','Ben','Yoyo']>>>names.insert(2,"Lily")
#['Alice','Ben','Lily','Yoyo']>>>n=["張三","李四"]>>>names.extend(n)#['Alice','Ben','Lily','Yoyo','張三','李四’]>>>n1=["王五"]>>>names+=n1#與names=names+n1不等價(jià)#['Alice','Ben','Lily','Yoyo','張三','李四','王五’]>>>names*=2#結(jié)果為:[‘Alice’,‘Ben’,‘Lily’,‘Yoyo’,‘張三’,‘李四’,‘王五’,'Alice','Ben','Lily','Yoyo','張三','李四','王五’]>>>id(names)51371264下列Python程序的運(yùn)行結(jié)果是(
)。s=[1,2,3,'a']s.append([4,5])print(len(s))A.2
B.4
C.5
D.66.2.2列表的專(zhuān)有操作2.列表元素的刪除del語(yǔ)句dells:刪除列表ls對(duì)象dells[i]:刪除列表ls第i項(xiàng)的元素dells[i:j:k]:刪除列表ls第i到第j-1項(xiàng)以k為步長(zhǎng)的元素ls.pop(i)方法:返回列表ls第i項(xiàng)元素并刪除該元素,缺省i刪最后一個(gè)ls.remove(x)方法:將列表中第一個(gè)出現(xiàn)的元素x刪除ls.clear()方法:
刪除列表ls中的所有元素,把ls變?yōu)榭樟斜?.2.2列表的專(zhuān)有操作>>>names=['Alice','Ben','Candy','Mary','Lucy']>>>delnames[0]>>>names['Ben','Candy','Mary','Lucy']>>>delnames[2:]>>>names['Ben','Candy']>>>delnames>>>names=['Alice','Ben','Candy','Mary','Lucy']>>>names.pop()'Lucy'>>>names.pop(0)'Alice'>>>names['Ben','Candy','Mary’]>>>names=['Alice','Ben','Candy','Ben','Lucy']>>>names.remove('Ben')>>>names['Alice','Candy','Ben','Lucy’]>>>names=['Alice','Ben','Candy','Mary','Lucy']>>>names.clear()>>>names[]以下代碼的輸出結(jié)果是(
)。list1=[1,2,3,4]list2=list1list2.clear()print(list1)A.[1,2,3,4]
B.1,2,3,4
C.[]
D.錯(cuò)誤6.2.2列表的專(zhuān)有操作3.列表元素的修改可以通過(guò)索引或切片直接修改列表元素的值。ls[i]=xls[i:j:k]=lst當(dāng)使用切片賦值將一個(gè)列表賦給另一個(gè)列表時(shí),Python不要求兩個(gè)列表長(zhǎng)度一樣,但遵循“多增少減”的原則??梢酝ㄟ^(guò)賦給更多或更少元素實(shí)現(xiàn)列表元素的插入或刪除6.2.2列表的專(zhuān)有操作>>>a=[1,2,3,4,5]>>>a[2::]=[7,8,9,10]#把下標(biāo)從2到所有的元素改為[7,8,9,10]>>>a[1,2,7,8,9,10]>>>a[0:2]=[6]#把下標(biāo)為0和1的元素改[6]>>>a[6,7,8,9,10]6.2.2列表的專(zhuān)有操作4.對(duì)列表進(jìn)行排序和逆置ls.sort(key=None,reverse=False):reverse=True表示降序排列,reverse參數(shù)缺省,或reverse=False表示升序排列。key參數(shù)用于指定一個(gè)函數(shù),此函數(shù)將在每個(gè)元素比較前被調(diào)用。ls.reverse():
反轉(zhuǎn)逆置列表ls中的元素。內(nèi)置函數(shù)sorted(ls[,reverse=False]):將列表ls默認(rèn)升序排列后生成的新列表返回,原列表ls的值不變。若reverse=True,表示降序。6.2.2列表的專(zhuān)有操作>>>s=[23,21,45,67,12,9]>>>s.reverse()>>>s[9,12,67,45,21,23]>>>s.sort()>>>s[9,12,21,23,45,67]>>>s.sort(reverse=True)>>>s[67,45,23,21,12,9]內(nèi)置函數(shù)sorted(ls[,reverse=False])的舉例如下:>>>s=[23,21,45,67,12,9]>>>t=sorted(s)>>>s[23,21,45,67,12,9]>>>t[9,12,21,23,45,67]字符串str="catdogtiger",以下程序的輸出結(jié)果是:(
)。str="catdogtiger"ls=str.split()ls.reverse()print(ls)A.'tiger','dog','cat’B.tigerdogcatC.NoneD.['tiger','dog','cat']6.2.3遍歷列表1.用for循環(huán)語(yǔ)句遍歷列表格式:for變量名in列表名:語(yǔ)句塊【例
6?1】用for循環(huán)遍歷列表,將列表中的每個(gè)元素星期幾的英文全稱(chēng)改為縮寫(xiě),輸出時(shí)用空格隔開(kāi)。week_list=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]i=0foriteminweek_list:week_list[i]=item[0:3]i=i+1foriteminweek_list:print(item,end="")6.2.3遍歷列表2.用while循環(huán)語(yǔ)句遍歷列表用while循環(huán)語(yǔ)句遍歷列表時(shí),需要先計(jì)算列表的長(zhǎng)度,將獲得的長(zhǎng)度作為循環(huán)的條件,用索引訪(fǎng)問(wèn)列表元素。【例
6?2】用列表的方法輸出斐波那契數(shù)列:1,1,2,3,5,8…前10項(xiàng),并計(jì)算這10項(xiàng)的和。lst=[1,1]i=2whilei<=10:lst.append(lst[i-1]+lst[i-2])i=i+1print(lst)i=0s=0whilei<len(lst):s+=lst[i]i=i+1print(s)lst=[1,1]i=2whilei<=10:lst.append(lst[i-1]+lst[i-2])i=i+1print(lst)print(sum(lst))6.2.4列表推導(dǎo)式列表推導(dǎo)式可以利用range對(duì)象、元組、列表、字典和集合等數(shù)據(jù)類(lèi)型,快速生成一個(gè)滿(mǎn)足條件的列表。語(yǔ)法格式如下:[表達(dá)式for迭代變量in迭代對(duì)象
[if條件表達(dá)式]]其中[if條件表達(dá)式]可缺省。將每個(gè)符合if條件的迭代變量計(jì)算一次表達(dá)式的值,這些值就是新生成的列表中的每個(gè)元素。1.不加if條件的列表推導(dǎo)式創(chuàng)建一個(gè)1到10的整數(shù)列表,代碼如下:>>>a=[x+1forxinrange(10)]>>>a[1,2,3,4,5,6,7,8,9,10]>>>importrandom>>>b=[random.randint(0,100)foriinrange(10)]>>>b[76,17,98,10,56,22,43,2,66,86]2.加if條件的列表推導(dǎo)式創(chuàng)建一個(gè)1到20間奇數(shù)的平方的列表,代碼如下:>>>b=[x*xforxinrange(1,21)ifx%2==1]>>>b[1,9,25,49,81,121,169,225,289,361]3.多重循環(huán)的列表推導(dǎo)式上面的列表推導(dǎo)式都只包含一個(gè)循環(huán),實(shí)際上可以使用多重循環(huán),舉例如下:>>>c=[[x,y]forxinrange(3)foryinrange(3)]>>>c[[0,0],[0,1],[0,2],[1,0],[1,1],[1,2],[2,0],[2,1],[2,2]]【例63】用隨機(jī)函數(shù)生成n個(gè)0-100的隨機(jī)整數(shù),降序排列輸出。分析:用列表推導(dǎo)式生成由n個(gè)隨機(jī)數(shù)組成的列表,然后用列表的方法sort對(duì)數(shù)據(jù)進(jìn)行排序。代碼如下:importrandomrandom.seed()n=eval(input("輸入要生成多少個(gè)隨機(jī)數(shù):"))alist=[random.randint(0,100)foriinrange(n)]print("排序前:",alist)alist.sort(reverse=True)print("排序后:",alist)6.3元組Python中元組是序列類(lèi)型中比較特殊的類(lèi)型,因?yàn)樗坏﹦?chuàng)建就不能被修改。元組類(lèi)型在表達(dá)固定數(shù)據(jù)項(xiàng)、函數(shù)多返回值、多變量同步賦值、循環(huán)遍歷等情況下十分有用。6.3.1元組的基本操作1.創(chuàng)建元組創(chuàng)建元組用使用圓括號(hào)“()”,所有元素放在一對(duì)圓括號(hào)“()”中,并用逗號(hào)“,”分隔;也可用tuple()函數(shù)將range()對(duì)象、列表、字符串或其他可迭代類(lèi)型的數(shù)據(jù)轉(zhuǎn)為元組。>>>tup0=()#空元組>>>tup1=("Rat","OX")#用圓括號(hào)創(chuàng)建元組>>>tup2="Horse","Sheep"#圓括號(hào)可省略>>>tup3=(1,2,3,"a","b","c")#元組中包含不同類(lèi)型的數(shù)據(jù)>>>tup4=(100,)#只有一個(gè)元素時(shí),逗號(hào)不能省略>>>tup5=tuple(range(5))>>>list1=[70,80,90,99]>>>tup6=tuple(list1)>>>tup7=tuple("hello")6.3.1元組的基本操作2.訪(fǎng)問(wèn)元組可以使用下標(biāo)索引和切片來(lái)訪(fǎng)問(wèn)或獲取指定的元素,但只能訪(fǎng)問(wèn)不能修改元素的值>>>tup6=(70,80,90,99)>>>print(tup6[0],tup6[-1],tup6[1:3])7099(80,90)>>>tup6[3]=100Traceback(mostrecentcalllast):File"<pyshell#6>",line1,in<module>tup6[3]=100TypeError:'tuple'objectdoesnotsupportitemassignment下面代碼的輸出結(jié)果是(
)。t1=('a','b','c',['a','b','c'])t1[-1][-1]='d'print(t1)A.('a','b','c',’d’)B.('a','b','c',['a','b','d’])
C.('a','b','c',['a','b','c'],'d')D.異常6.3.1元組的基本操作3.元組的常用內(nèi)置函數(shù)和操作符元組可以使用所有適用于序列的通用操作符和函數(shù),元組的常用內(nèi)置函數(shù)有l(wèi)en()、max()、min()等,通用操作符+、*、in、notin同6.1.3節(jié)4.刪除元組元組是不可變序列,無(wú)法刪除元組中的元素,只能使用del命令刪除整個(gè)元組對(duì)象【例67】獲取用戶(hù)輸入的一組數(shù)據(jù),采用逗號(hào)分隔輸入,輸出其中的最大值。data=eval(input("請(qǐng)輸入一組數(shù)據(jù),以逗號(hào)分隔:"))m=data[0]foriindata:ifi>m:m=iprint("最大值是:",m)data=eval(input("請(qǐng)輸入一組數(shù)據(jù),以逗號(hào)分隔:"))print("最大值是:",max(data))6.3.2元組與列表的轉(zhuǎn)換元組和列表可以通過(guò)list()函數(shù)和tuple()函數(shù)實(shí)現(xiàn)相互轉(zhuǎn)換。如果想要修改其元素值,可以將元組轉(zhuǎn)換為列表,修改完畢后,再轉(zhuǎn)換為元組。>>>tup=(1,2,3,4)>>>lst=list(tup)>>>lst.append(5)>>>lst[1,2,3,4,5]>>>tup=tuple(lst)>>>tup(1,2,3,4,5)6.4集合集合是包含0個(gè)或多個(gè)數(shù)據(jù)元素的無(wú)序組合。集合中的元素不可重復(fù),元素類(lèi)型只能是整數(shù)、浮點(diǎn)數(shù)、字符串、元組等不可變數(shù)據(jù)類(lèi)型,且這些數(shù)據(jù)元素是無(wú)序的,沒(méi)有索引位置的概念,不能切片。Python中的集合類(lèi)型與數(shù)學(xué)中集合的概念一致,可對(duì)其進(jìn)行交、并、差等集合運(yùn)算6.4.1集合的創(chuàng)建1.使用花括號(hào){}將多個(gè)用逗號(hào)隔開(kāi)的數(shù)據(jù)括起來(lái)2.使用set()函數(shù),它將range()對(duì)象、列表、字符串或其他可迭代類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為集合,但會(huì)將重復(fù)的元素刪掉>>>s1={1,2,3,4,5}>>>s2=set("happy")>>>s3=set([1,2,3,5,2])>>>s4=set()#空集合,注意不是{},{}表示空字典。>>>s1,s2,s3,s4({1,2,3,4,5},{'p','a','y','h'},{1,2,3,5},set())設(shè)a=set([1,2,2,3,3,3,4,4,4,4]),則a.remove(4)的值是()。A.{1,2,3}B.{1,2,2,3,3,3,4,4,4}C.{1,2,2,3,3,3}D.[1,2,2,3,3,3,4,4,4]以下不能創(chuàng)建集合的語(yǔ)句是()。A.s1={}B.s2=set()C.s3=set(“abcd”)D.s4={1,2,3,4}6.4.2集合運(yùn)算有4種基本操作:交集(&)、并集(|)、差集(-)、補(bǔ)集(^)運(yùn)算符功能描述S&T或S.intersection(T)交集:返回一個(gè)新集合,包含同時(shí)在集合S和T中的元素。S|T或S.union(T)并集:返回一個(gè)新集合,包含集合S和T中的所有元素S-T或S.difference(T)差集:返回一個(gè)新集合,包含在集合S中但不在集合T中的元素S^T或S.symmetric_difference_update(T)補(bǔ)集:返回一個(gè)新集合,包含集合S和T中的元素,但不包含同時(shí)在這兩集合中的元素S<=T或S.issubset(T)子集測(cè)試:若S與T相同或S是T的子集,返回True,否則返回False。S<T表示S是否是T的真子集S>=T或S.issuperset(T)超集測(cè)試:若S與T相同或S是T的超集,返回True,否則返回False。S>T表示S是否是T的真超集set1=set("字典"),set2=set("集合"),set1|set2的結(jié)果可能是()。
A.{"字典集合"}B.{"典","字","集","合"}C."字典集合"D.["字典集合"]6.4.3集合的常用方法
方法或函數(shù)功能描述S.add(x)添加元素:若數(shù)據(jù)元素x不在集合S中,將x添加到S中S.clear()清空元素:移除集合S中的所有元素S.copy()復(fù)制集合:返回集合S的一個(gè)副本S.pop()隨機(jī)刪除元素:隨機(jī)返回并移除一個(gè)元素,S為空時(shí)產(chǎn)生KeyError異常S.discard(x)刪除指定元素:若x在集合S中,移除該元素;x不存在時(shí),不報(bào)異常S.remove(x)刪除指定元素:若x在集合S中,移除該元素;x不存在時(shí),產(chǎn)生KeyError異常S.isdisjoint(T)若集合S和T沒(méi)有相同元素,返回True,否則返回Falselen(S)返回集合S的元素個(gè)數(shù)xinS若x是S的元素,返回True,否則返回FalsexnotinS若x不是S的元素,返回True,否則返回False【例6-8】生成10個(gè)互不相同的[0,100]的隨機(jī)整數(shù)。分析:由于集合是一個(gè)無(wú)序的、不重復(fù)的數(shù)據(jù)集,所以本例題采用集合實(shí)現(xiàn)。代碼如下:importrandoms=set()i=0whilei<10:x=random.randint(0,100)s.add(x)i=len(s)print('s=',s)6.5字典字典(dict)是用花括號(hào){}括起來(lái)的、用逗號(hào)分隔的元素集合,其元素是由關(guān)鍵字和值組成,形式為:“關(guān)鍵字:值”a={"姓名":"張三","性別":"男","年齡":18,"班級(jí)":"23計(jì)科1班"}字典保存映射關(guān)系,保存了兩組數(shù)據(jù),一組數(shù)據(jù)是關(guān)鍵字即鍵,另一組數(shù)據(jù)是值,可通過(guò)鍵來(lái)訪(fǎng)問(wèn)值。字典中的元素是無(wú)序的、可變的。當(dāng)添加鍵值對(duì)時(shí),Python會(huì)自動(dòng)修改字典的排列順序,以提高搜索效率,且這種排列方式對(duì)用戶(hù)是隱藏的。6.5.1字典的基本操作1.創(chuàng)建字典一般格式為:字典名={[關(guān)鍵字1:值1[,關(guān)鍵字2:值2,……,關(guān)鍵字n:值n]]}關(guān)鍵字可以是數(shù)字、字符串及元組等不可變類(lèi)型,不允許重復(fù),而值可以重復(fù)。>>>dict1={}#空字典>>>dict2={"姓名":"張三","性別":"男","年齡":18,"班級(jí)":"23計(jì)科1班"}用內(nèi)置函數(shù)dict()創(chuàng)建字典>>>dict3=dict(姓名="張三",性別="男",年齡=18,班級(jí)="23計(jì)科1班")>>>dict4=dict([("姓名","張三"),("性別","男"),("年齡",18),("班級(jí)","23計(jì)科1班")])>>>dict5=dict((("姓名","張三"),("性別","男"),("年齡",18),("班級(jí)","23計(jì)科1班")))以下不能創(chuàng)建字典的語(yǔ)句是()。A.dict1={}B.dict2={2:4}C.dict3=dict([2,4],[6,8])D.dict4=dict(([2,4],[6,8]))dict([['a',1],['b',2]])的返回值是()。A.{'a':1,'b':2}B.[{'a':1,'b':2}]C.{1,2}D.['a','b']6.5.1字典的基本操作2.字典的訪(fǎng)問(wèn)通過(guò)關(guān)鍵字來(lái)訪(fǎng)問(wèn)字典的元素,一般格式為:字典名[關(guān)鍵字]若關(guān)鍵字不存在,會(huì)引發(fā)一個(gè)KeyError錯(cuò)誤給出如下代碼:DictColor={"red":"紅色","blue":"藍(lán)色","pink":"粉紅色","brown":"棕色","purple":"紫色","whilte":"白色"}
以下選項(xiàng)中能輸出"藍(lán)色"的是()。A.print(DictColor.keys())B.print(DictColor["藍(lán)色"])C.print(DictColor.values())D.print(DictColor["blue"])6.5.1字典的基本操作3.添加、修改字典元素字典是鍵值對(duì)的集合,字典是可變的,可通過(guò)已有的關(guān)鍵字,修改其映射的值,也可往字典中添加新的鍵值對(duì)。添加與修改字典元素的一般格式為:字典名[關(guān)鍵字]=值>>>dict1={'name':"Jim",'age':18}>>>dict1[‘a(chǎn)ge’]=19#存在age,就修改值>>>dict1[‘scores’]=[70,80,90]#添加鍵值對(duì)>>>dict1{'name':'Jim','age':19,'scores':[70,80,90]}6.5.1字典的基本操作4.刪除字典元素當(dāng)不再需要字典中的某個(gè)元素時(shí),可以使用del命令將其刪除。格式如下:
del字典名[關(guān)鍵字]刪除整個(gè)字典:
del字典名>>>scores={"語(yǔ)文":80,"數(shù)學(xué)":77,"英語(yǔ)":90}>>>delscores["英語(yǔ)"]>>>scores{'語(yǔ)文':80,'數(shù)學(xué)':77}6.5.1字典的基本操作5.檢查字典關(guān)鍵字是否存在通過(guò)in|notin運(yùn)算符判斷關(guān)鍵字是否存在于字典中。格式如下:關(guān)鍵字in字典關(guān)鍵字notin字典返回值為T(mén)rue或False。6.字典的長(zhǎng)度和運(yùn)算len()函數(shù)可以獲取字典所包含的鍵值對(duì)的數(shù)目,即字典長(zhǎng)度。max()、min()、sum()、sort()等函數(shù)也可用于字典,但是對(duì)字典的關(guān)鍵字進(jìn)行運(yùn)算。字典d={'Name':'Lisa','Sex':'Female','Age':'18'},表達(dá)式len(d)的值為()。6.5.2字典的常用方法1.keys()、values()和items()方法這三個(gè)方法返回由字典鍵、值和鍵值對(duì)組成的新視圖對(duì)象。什么是視圖對(duì)象?視圖對(duì)象提供字典條目的一個(gè)動(dòng)態(tài)視圖,意味著當(dāng)字典改變時(shí),視圖也會(huì)相應(yīng)的改變。>>>dc={"name":"Jim","age":18}>>>keys=dc.keys()>>>values=dc.values()>>>items=dc.items()>>>print(values)dict_values(['Jim',18])>>>dc['name']='JimGreen'>>>print(values)dict_values(['JimGreen',18])字典的遍歷d={"Wu":"China","Liu":"America","Nan":"Korea"}forkind:#與forkind.keys():等價(jià)print(k,end="")print(d[k],end="")foraind.values():print(a)forcind.items():print(c)forcind.items():print(c[0],c[1])對(duì)于字典D={'a':10,'b':20,'c':30,'d':40},sum(list(D.values()))的值是()。
A.10B.100C.40以下程序的輸出結(jié)果是:()。dict={'Name':'Lisa','Age':18}print(dict.items())A.[('Age',18),('Name','Lisa')]B.('Age',18),('Name','Lisa')C.'Age':18,'Name':'Lisa'D.dict_items([('Age',18),('Name','Lisa')])6.5.2字典的常用方法2.get()、pop()、popitem()方法dict1.get(key,default):返回從dict1中獲取鍵key對(duì)應(yīng)的值;若鍵不存在,返回default的值,默認(rèn)值為None。此方法的好處是無(wú)需擔(dān)心key是否存在,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 印刷外委合同范例
- 一般機(jī)械設(shè)備租賃合同范本
- 不銹鋼樓梯欄桿施工合同范本
- 同業(yè)禁止合同范本
- 加盟合同解除合同范本
- mv制作合同范本
- 單張合同范本
- 吊籃維護(hù)維修合同范例
- 供銷(xiāo)社土地租賃合同范本
- 黨建合同范例
- 《中國(guó)痤瘡治療指南》課件
- 《休閑農(nóng)業(yè)園區(qū)管理》課件-第三章 休閑農(nóng)業(yè)的生產(chǎn)管理
- 2024年常州機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 2024年人教版小學(xué)語(yǔ)文六年級(jí)下冊(cè)第二單元測(cè)試卷(含答案解析)【可編輯打印】
- 教育技術(shù)學(xué)研究方法基礎(chǔ)
- 幼兒園大班科學(xué)課件:《植物的生長(zhǎng)》
- 湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題庫(kù)(含答案)
- 《商務(wù)數(shù)據(jù)分析》 課件 項(xiàng)目一 商務(wù)數(shù)據(jù)分析認(rèn)知
- 2023學(xué)年、2024學(xué)年臨平區(qū)公辦學(xué)校校方責(zé)任險(xiǎn)投保采購(gòu)項(xiàng)目招標(biāo)文件
- 橋梁施工案例分析
- 2024露天煤礦智能化建設(shè)與管理規(guī)范
評(píng)論
0/150
提交評(píng)論