版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章復(fù)合數(shù)據(jù)類型序列類型引言列表元組字符串通用操作文件Python支持組合數(shù)據(jù)類型,可以將一批數(shù)據(jù)作為一個(gè)整體進(jìn)行數(shù)據(jù)操作,這就是數(shù)據(jù)容器的概念。序列是容器(集合)中包含多個(gè)數(shù)據(jù)(元素),容器中的數(shù)據(jù)(元素)有先后次序,通過下標(biāo)(索引)進(jìn)行訪問。引言序列類型組合數(shù)據(jù)類型列表列表(list)是序列類型的一種,由0或多個(gè)有序排列的元素組成,序列所有的特性和操作對(duì)于列表都成立。列表的格式為:[元素,元素,……,元素]02使用方括號(hào)“[]”創(chuàng)建列表,可以是空列表或包含多個(gè)項(xiàng)的列表。直接創(chuàng)建使用簡(jiǎn)潔的語(yǔ)法創(chuàng)建列表,常用于創(chuàng)建空列表或包含單個(gè)元素的列表。列表解析式創(chuàng)建列表#創(chuàng)建一個(gè)空列表>>>a=[]#創(chuàng)建一個(gè)內(nèi)置元素的列表>>>b=[2,3,5,7,11,13]#單變量列表解析>>>print([iforiinrange(6)])[0,1,2,3,4,5]#多變量列表解析>>>a=[[5*i,5*i+1,5*i+2,5*i+3,5*i+4]foriinrange(5)]>>>a[[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14],[15,16,17,18,19],[20,21,22,23,24]]將其他數(shù)據(jù)類型轉(zhuǎn)換成列表,最多接收一個(gè)參數(shù)。使用`list()`函數(shù)逐個(gè)添加元素到列表末尾,是列表中元素的一種添加方式。用`append`方法創(chuàng)建列表>>>a=list('hello')>>>a['h','e','l','l','o']>>>b=list()>>>b[]>>>list(range(1,10,2))[1,3,5,7,9]lst=[]foriinrange(4): lst.append(input('請(qǐng)輸入元素:'))print(lst)輸出:請(qǐng)輸入元素:1請(qǐng)輸入元素:2請(qǐng)輸入元素:3請(qǐng)輸入元素:4['1','2','3','4']訪問元素通過索引訪問列表元素,索引從0開始,可以像訪問字典中的值一樣使用。修改元素類似訪問元素的語(yǔ)法,通過索引修改列表元素的值,但無(wú)法直接刪除或添加元素。添加元素使用`append`、`extend`、`insert`、使用`+`號(hào)等方法添加新元素。列表操作>>>names=['Lily','Lucy','May']>>>print(names[0])Lily>>>print(names[1])Lucy>>>print(names[2])May>>>a=[[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14],[15,16,17,18,19],[20,21,22,23,24]]>>>a[0][0]0>>>a[1][0]5>>>a[0][1]1>>>a[4][4]24訪問元素通過索引訪問列表元素,索引從0開始,可以像訪問字典中的值一樣使用。修改元素類似訪問元素的語(yǔ)法,通過索引修改列表元素的值,但無(wú)法直接刪除或添加元素。添加元素使用`append`、`extend`、`insert`、使用`+`號(hào)等方法添加新元素。列表操作>>>a=[1,3,5,7,11]>>>print(a)[1,3,5,7,11]>>>a[0]=2>>>print(a)[2,3,5,7,11]訪問元素通過索引訪問列表元素,索引從0開始,可以像訪問字典中的值一樣使用。修改元素類似訪問元素的語(yǔ)法,通過索引修改列表元素的值,但無(wú)法直接刪除或添加元素。添加元素使用`append`、`extend`、`insert`、使用`+`號(hào)等方法添加新元素。列表操作>>>names=['Lily','Lucy','May']>>>print(names)['Lily','Lucy','May']>>>names.append('Anna')>>>print(names)['Lily','Lucy','May','Anna']>>>a=[1,2]>>>b=[3,4]>>>c=[1,2]#追加新對(duì)象>>>a.append(b)>>>print(a)[1,2,[3,4]]#追加新元素序列>>>c.extend(b)>>>print(c)[1,2,3,4]訪問元素通過索引訪問列表元素,索引從0開始,可以像訪問字典中的值一樣使用。修改元素類似訪問元素的語(yǔ)法,通過索引修改列表元素的值,但無(wú)法直接刪除或添加元素。添加元素使用`append`、`extend`、`insert`、使用`+`號(hào)等方法添加新元素。列表操作>>>a=[1,2]>>>b={'Lily':20,'Lucy':22} #字典>>>c=[1,2]>>>a.extend(b)>>>print(a)[1,2,'Lily','Lucy']>>>c.append(b)>>>print(c)[1,2,{'Lily':20,'Lucy':22}]#把新元素Eda放到目前的第1位元素Lily之前>>>names=['Lily','Lucy','May']>>>names.insert(0,'Eda')>>>print(names)['Eda','Lily','Lucy','May']#把新元素Mia放到目前的第2位元素Lily之前>>>names.insert(1,'Mia')>>>print(names)['Eda','Mia','Lily','Lucy','May']訪問元素通過索引訪問列表元素,索引從0開始,可以像訪問字典中的值一樣使用。修改元素類似訪問元素的語(yǔ)法,通過索引修改列表元素的值,但無(wú)法直接刪除或添加元素。添加元素使用`append`、`extend`、`insert`、使用`+`號(hào)等方法添加新元素。列表操作#把新元素Eda放到目前的最后一個(gè)元素May之前>>>names=['Lily','Lucy','May']>>>names.insert(-1,'Eda')>>>print(names)['Lily','Lucy','Eda','May']#正索引值超過列表長(zhǎng)度的有效范圍>>>names=['Lily','Lucy','May']>>>names.insert(5,'Eda')>>>print(names)['Lily','Lucy','May','Eda']#負(fù)索引值超過列表長(zhǎng)度的有效范圍>>>names.insert(-5,'Eda')>>>print(names)['Mia','Lily','Lucy','May','Eda']>>>names=['Lily','Lucy','May']>>>names.insert(1.5,'Eda')TypeError:integerargumentexpected,gotfloat訪問元素通過索引訪問列表元素,索引從0開始,可以像訪問字典中的值一樣使用。修改元素類似訪問元素的語(yǔ)法,通過索引修改列表元素的值,但無(wú)法直接刪除或添加元素。添加元素使用`append`、`extend`、`insert`、使用`+`號(hào)等方法添加新元素。列表操作>>>a=[1,2]>>>c=[1,2]>>>b=a+c>>>print(b)[1,2,1,2]刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>names=['Lily','Lucy','May']>>>print(names)['Lily','Lucy','May']#使用正數(shù)索引>>>delnames[2]>>>print(names)['Lily','Lucy']#使用負(fù)數(shù)索引>>>delnames[-1]>>>print(names)['Lily']#刪除整個(gè)列表>>>delnames>>>print(names)NameError:name'names'isnotdefined刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>names=['Mia','Lily','Lucy','May','Eda']>>>print(names)['Mia','Lily','Lucy','May','Eda']#使用正數(shù)索引,刪去索引值為2的元素>>>delnames[2:3]>>>print(names)['Mia','Lily','May','Eda']#使用負(fù)數(shù)索引,刪去索引值為-3、-2的元素>>>delnames[-3:-1]>>>print(names)['Mia','Eda']刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>names=['Mia','Lily','Lucy','May','Eda']>>>print(names)['Mia','Lily','Lucy','May','Eda']#使用正數(shù)索引,刪去索引值為2的元素>>>delnames[2:3]>>>print(names)['Mia','Lily','May','Eda']#使用負(fù)數(shù)索引,刪去索引值為-3、-2的元素>>>delnames[-3:-1]>>>print(names)['Mia','Eda']刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>names=['Mia','Lily','Lucy','May','Eda']>>>print(names)['Mia','Lily','Lucy','May','Eda']>>>names.pop(3)>>>print(names)['Mia','Lily','Lucy','Eda']>>>names.pop()>>>print(names)['Mia','Lily','Lucy']刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>names=['Mia','Lily','Lucy','Mia','Eda']>>>print(names)['Mia','Lily','Lucy','Mia','Eda']>>>names.remove('Mia')>>>print(names)['Lily','Lucy','Mia','Eda']>>>names.remove('Mia')>>>print(names)['Lily','Lucy','Eda']>>>names.remove('Mia')ValueError:list.remove(x):xnotinlist刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>names=['Mia','Lily','Lucy','May','Eda']>>>print(names)['Mia','Lily','Lucy','May','Eda']>>>names.clear()>>>print(names)[]刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作#例1>>>a=[1,2]>>>b=a>>>print('a=',a,'b=',b)a=[1,2]b=[1,2]>>>b[0]=-1>>>print('a=',a,'b=',b)a=[-1,2]b=[-1,2]#例2>>>a=[1,2]>>>c=a[:]>>>print('a=',a,'c=',c)a=[1,2]c=[1,2]>>>c[0]=-1>>>print('a=',a,'c=',c)a=[1,2]c=[-1,2]刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>l=[1,2,3,4,5,6]>>>l1=l[1:4:1] #取1,2,3>>>l1[2,3,4]>>>l2=l[-5:-1:1] #取-5,-4,-3,-2>>>l2[2,3,4,5]>>>l3=l[1:-1:1] #取除0,-1外的所有>>>l3[2,3,4,5]>>>l4=l[-5:5:1] #統(tǒng)一正負(fù)兩種索引,后判斷>>>l4[2,3,4,5]刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>l=[1,2,3,4,5,6]>>>l5=l[5:1:-1] #取5,4,3,2>>>l5[6,5,4,3]
>>>l6=l[-1:-5:-1] #取-1,-2,-3,-4>>>l6[6,5,4,3]
>>>l7=l[5:-5:-1] #統(tǒng)一正負(fù)兩種索引,后判斷>>>l7[6,5,4,3]
>>>l8=l[-1:1:-1] #取除0,1外的所有>>>l8[6,5,4,3]
刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>l=[1,2,3,4,5,6]>>>l9=l[1::1] #取1及之后的所有>>>l9[2,3,4,5,6]>>>l10=l[:5:1] #取0,1,2,3,4>>>l10[1,2,3,4,5]>>>l11=l[1:5] #取1,2,3,4>>>l11[2,3,4,5]>>>l12=l[1::-1] #取1,0>>>l12[2,1]
>>>l13=l[:-1:-1] #取直范圍的方向與步長(zhǎng)方向不一致>>>l13[]
刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>l=[1,2,3,4,5,6]>>>l14=l[1+1:11//2:1*2]>>>l14[3,5]
>>>l=list(range(10))>>>l[0,1,2,3,4,5,6,7,8,9]>>>l[2:5]=[20,30]>>>l[0,1,20,30,5,6,7,8,9]刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>l[3::2]=[11,22]>>>lValueError:attempttoassignsequenceofsize2toextendedsliceofsize3>>>l[3::3]=[11,22]>>>l[0,1,20,11,5,6,22,8,9]>>>dell[5:7]>>>l[0,1,20,11,5,8,9]刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>l[2:5]=100TypeError:canonlyassignaniterable>>>l[2:5]=[100]>>>l[0,1,100,8,9]>>>l[len(l):]=[4,5]>>>l[0,1,100,8,9,4,5]刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>l=[1,4,2,9,7,8,9,3,1]>>>x=l.count(9)>>>print(x)2>>>l=[1,4,2,9,7,8,9,3,1]>>>x=l.copy>>>print(x)[1,4,2,9,7,8,9,3,1]
>>>x[0]=0>>>print(x)[0,4,2,9,7,8,9,3,1]
>>>print(l)[1,4,2,9,7,8,9,3,1]
刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>l=[4,55,64,32,16,32]>>>x=l.index(32)>>>print(x)3>>>y=l.index(32,2)>>>print(y)3>>>z=l.index(32,2,3)ValueError:32isnotinlist>>>a=[1,1,5,7,11]>>>a.reverse()>>>a[11,7,5,1,1]刪除元素使用`del`、`pop`、`remove`、`clear`等方法刪除列表中的元素。切片賦值通過切片對(duì)列表進(jìn)行賦值,實(shí)現(xiàn)嫁接、切除或就地修改操作。其他列表操作count、copy、index、reverse、sort等方法或函數(shù)。列表操作>>>b=[5,3,1,11,7]>>>b.sort()>>>b[1,3,5,7,11]>>>b.sort(reverse=True)>>>b[11,7,5,3,1]>>>defmyFunc(e):returnlen(e)>>>cars=['Ford','Mitsubishi','BMW','VW']>>>cars.sort(key=myFunc)>>>print(cars)['VW','BMW','Ford','Mitsubishi']列表操作列表內(nèi)置方法解釋L.append(x)在列表L后面增加一個(gè)元素xL.clear()移除列表L的所有元素L.count(x)計(jì)算列表L中x出現(xiàn)的次數(shù)L.copy()列表L的備份L.extend(x)把另一個(gè)列表X的內(nèi)容添加到列表L的后面L.index(value[,start[,stop]])計(jì)算在指定范圍[start,stop)內(nèi)首個(gè)出現(xiàn)的value的下標(biāo)L.insert(index,x)在下標(biāo)index的位置插入xL.pop(index)刪除并返回列表中指定下標(biāo)(位置)的數(shù)據(jù),如果下標(biāo)不指定,則刪除最后一項(xiàng)。L.remove(value)刪除值為value的第一個(gè)元素;若要?jiǎng)h除的元素不在列表中,會(huì)報(bào)錯(cuò)L.reverse()倒置列表LL.sort(reverse=True|False,key=myFunc)對(duì)列表元素排序:reverse=True將對(duì)列表進(jìn)行降序排序。默認(rèn)值為reverse=False;key用于指定排序標(biāo)準(zhǔn)的函數(shù)將兩個(gè)列表相加,得到一個(gè)新的列表,這是最直接的方法。列表相加使用`append`方法將元素添加到列表末尾,是列表中元素的一種添加方式。append方法使用`insert`方法在指定位置插入新元素,可以像在字典中那樣使用。insert方法使用簡(jiǎn)潔的語(yǔ)法創(chuàng)建列表,常用于創(chuàng)建空列表或包含單個(gè)元素的列表。列表解析式列表創(chuàng)建方法效率比較列表創(chuàng)建方法效率比較涉及兩種新模塊time模塊和random模塊time模塊用于計(jì)時(shí),random模塊用于生成隨機(jī)的元素值在Python中經(jīng)常需要對(duì)程序運(yùn)行時(shí)間進(jìn)行掌控,一般使用time模塊進(jìn)行計(jì)時(shí)。time()是一個(gè)時(shí)間戳,記錄從1970年到當(dāng)下經(jīng)過的秒數(shù)。通過比較列表建立開始前和結(jié)束時(shí)的時(shí)間戳獲取時(shí)間差,就能確定程序運(yùn)行時(shí)間random模塊實(shí)現(xiàn)了各種分布的偽隨機(jī)數(shù)生成器,所謂偽隨機(jī)數(shù),即人類使用算法等方式,以一個(gè)基準(zhǔn)(也被叫做種子,最常用的就是時(shí)間戳)來(lái)構(gòu)造一系列數(shù)字,這些數(shù)字的特征符合人們所理解的隨機(jī)數(shù)。但因?yàn)槭峭ㄟ^算法得到的,所以一旦算法和種子都確定,那么產(chǎn)生的隨機(jī)數(shù)序列也是確定的,所以叫偽隨機(jī)數(shù)。一般默認(rèn)以系統(tǒng)時(shí)間為種子fromtimeimporttimefromrandomimportrandom列表創(chuàng)建方法效率比較start=time()lst=[]foriinrange(100000): lst=lst+[random()]print("addtest",str(time()-start)+"s")#用時(shí)(現(xiàn)在時(shí)間-初始時(shí)間)
輸出:addtest11.105808019638062sstart=time()lst=[]foriinrange(100000):lst.append(random())print("appendtest",str(time()-start)+"s")
輸出:appendtest0.013904333114624023sstart=time()lst=[]foriinrange(100000):lst.insert(0,random())print(”inserttest",str(time()-start)+"s")
輸出:inserttest1.6723971366882324sstart=time()lst=[random()foriinrange(100000)]print("listexptest",str(time()-start)+"s")
輸出:listexptest0.007883071899414062s列表解析式
>append方法
>insert方法
>列表相加元組0303元組推導(dǎo)式利用推導(dǎo)式生成元組,可以延遲生成元素。01直接創(chuàng)建使用括號(hào)直接創(chuàng)建一個(gè)元組,可以是空元組或包含多個(gè)元素的元組。02使用`tuple()`函數(shù)將其他序列類型轉(zhuǎn)換成元組。創(chuàng)建元組>>>a=()>>>b=(100,20)>>>type(b)tuple
>>>c=100,20>>>type(c)tuple
>>>d=(1,)>>>type(d)tuple>>>f=(1)>>>type(f)int
>>>e=1,>>>type(e)tuple
03元組推導(dǎo)式利用推導(dǎo)式生成元組,可以延遲生成元素。01直接創(chuàng)建使用括號(hào)直接創(chuàng)建一個(gè)元組,可以是空元組或包含多個(gè)元素的元組。02使用`tuple()`函數(shù)將其他序列類型轉(zhuǎn)換成元組。創(chuàng)建元組>>>a=tuple([2,3,5,7,11])>>>type(a)tuple
>>>tup=(valueforvalueinrange(1,5))>>>print(tup)<generatorobject<genexpr>at0x113e5c2e0>>>>foriintup: print(i)1234元組中的元素?zé)o法進(jìn)行增加、刪除、修改或排序操作,只能重新賦值創(chuàng)建新的元組。元組不可修改01元組操作>>>a=(2,3,5,7,11)>>>print(a)(2,3,5,7,11)>>>a=(1,2)>>>print(a)(1,2)>>>a=(2,3,5,7,11) >>>b=(1,2)>>>print(a+b)(2,3,5,7,11,1,2)
>>>a=(2,3,5,7,11) >>>dela[1]TypeError:'tuple'objectdoesn'tsupportitemdeletion>>>dela>>>aNameError:name'a'isnotdefined元組中的元素?zé)o法進(jìn)行增加、刪除、修改或排序操作,只能重新賦值創(chuàng)建新的元組。元組不可修改訪問元素元素內(nèi)置方法通過索引訪問元組元素,支持切片操作。index()和count()方法用于查找和計(jì)算元素的索引和出現(xiàn)次數(shù)。元組操作>>>a=(1,2,4,6,7,9) >>>a[1]2
>>>a[1:5:2] #表示索引搜索范圍在[1,5),2表示步長(zhǎng)(2,6)
index()方法查找和指定值第一次匹配的元素位置索引(根據(jù)就近原則,從左往右,找到首個(gè)即結(jié)束)。調(diào)用語(yǔ)法為:tuple.index(value[,start[,stop]])。count()方法返回指定值在元組中出現(xiàn)的次數(shù)。使用方式同列表同名方法,調(diào)用語(yǔ)法為:tuple.count(value)。列表和元組創(chuàng)建效率比較元組的創(chuàng)建速度比列表稍快,但通常情況下無(wú)需特別在意這種微小的差別無(wú)論如何,元組和列表都是有效的數(shù)據(jù)結(jié)構(gòu),選擇哪種結(jié)構(gòu)主要取決于使用場(chǎng)景和性能要求。#多次初始化一個(gè)相同元素的列表start=time() foriinrange(100000):a=[1,2,3,4,5,6]print("listtest",str(time()-start)+"s")輸出:listtest0.010180234909057617s#多次初始化一個(gè)相同元素的元組start=time() foriinrange(100000):a=(1,2,3,4,5,6)print("tupletest",str(time()-start)+"s")輸出:tupletest0.005105018615722656s元組記錄數(shù)據(jù)元組是一種適合用于記錄數(shù)據(jù)的類型,可以類似于帶字段名的記錄。具名元組使用`namedtuple()`函數(shù)可以創(chuàng)建具名元組,方便直接通過屬性獲取元素值。元組優(yōu)勢(shì)元組具有方便創(chuàng)建和訪問的優(yōu)勢(shì),是一種非常有用的數(shù)據(jù)類型,尤其適合存放不需要修改的數(shù)據(jù)。元組的價(jià)值fromcollectionsimportnamedtuple #生成一個(gè)City類City=namedtuple("City","namecountrypolulationcoordinates")#實(shí)例化tokyo=City("Tokyo",'JP','36.93',('35.68','139,69'))print(tokyo)print()print(City._fields)
輸出:City(name='Tokyo',country='JP',polulation='36.93',coordinates=('35.68','139,69'))Tokyo('name','country','polulation','coordinates')字符串04字符串索引字符串中的每一個(gè)字符可以通過索引訪問,索引從0開始。切片操作切片操作可以獲取字符串的子串,格式為string[start:end:step]訪問元素>>>s="HelloPython,helloworld" >>>s[0]'H'>>>s[5] #注意,空格也是一個(gè)字符''>>>s[30] #在進(jìn)行字符串截取的時(shí)候,如果指定的索引不存在,則會(huì)拋出異常IndexError:stringindexoutofrange>>>s="HelloPython,helloworld" >>>print(s[6:12:2])Pto>>>print(s[:12]) #從首位切片HelloPython>>>print(s[6:]) #切片到末尾Python,helloworld>>>print(s[:]) #整體切片拷貝HelloPython,helloworld字符串不可修改字符串不可修改,只能通過重新賦值生成新的字符串。重新賦值通過重新賦值,可以改變字符串中字符的排列順序,但無(wú)法增加或刪除字符。修改元素>>>s='hello' >>>s[0]=‘k’#會(huì)得到錯(cuò)誤TypeError:'str'objectdoesnotsupportitemassignment>>>s='heloo'>>>print(s)’heloo’字符串提供了大小寫轉(zhuǎn)換方法,如`lower()`、`upper()`、`swapcase()`、`capitalize()`、`title()`。使用`replace()`和`translate()`方法可以替換字符串中的部分元素內(nèi)容。字符串大小寫轉(zhuǎn)換&替換替換元素>>>s="HelloPython,HelloWorld123" >>>s.lower()'hellopython,helloworld123'>>>s="HelloPython,HelloWorld123" >>>s.upper()'HELLOPYTHON,HELLOWORLD123'>>>a='abcsda'>>>print(a.replace('b','小明')) a小明csda#使用帶有ASCII碼的字典將83(S)替換為80(P)>>>mydict={83:80}>>>txt="HelloSam!">>>print(txt.translate(mydict)) HelloPam!maketrans()方法可以創(chuàng)建映射表。這個(gè)映射表指出了不同Unicode碼點(diǎn)之間的轉(zhuǎn)換關(guān)系。語(yǔ)法格式為:string.maketrans(x,y,z)其中:x是必需參數(shù)。如果僅指定一個(gè)參數(shù),x是描述如何執(zhí)行替換的字典;如果指定兩個(gè)或多個(gè)參數(shù),則此參數(shù)必須是一個(gè)字符串,該字符串指定要替換的字符。y是可選參數(shù),是與參數(shù)x長(zhǎng)度相同的字符串。z是可選參數(shù)。描述要從原始字符串中刪除的字符。使用映射表替換多個(gè)字符,maketrans()方法返回一個(gè)以Unicode格式描述每個(gè)替換的字典。創(chuàng)建映射表替換元素>>>txt="GoodnightSam!";>>>x="mSa";>>>y="eJo";>>>z="odnght";>>>mytable=txt.maketrans(x,y,z); >>>print(txt.maketrans(x,y,z)){109:101,83:74,97:111,111:None,100:None,110:None,103:None,104:None,116:None}>>>print(txt.translate(mytable));GiJoe!字符串是不可變的,意味著一旦創(chuàng)建,其元素就不能被更改。因此,元組可以看作是不可變的列表。字符串不可修改由于字符串不可修改,無(wú)法在中間添加新元素,但可以通過拼接來(lái)實(shí)現(xiàn)。例如,將兩個(gè)字符串連接起來(lái)可以使用"+"號(hào)。拼接操作添加元素>>>mot_en="Rememberanceisaformmeeting.Frgetfulnessisaformoffreedom" >>>mot_cn="記憶是一個(gè)相遇。遺忘是一種自由。">>>print(mot_en+"-"+mot_cn)Rememberanceisaformmeeting.Frgetfulnessisaformoffreedom-記憶是一個(gè)相遇。遺忘是一種自由。>>>a=23>>>message="Happy"+str(a)+"rdBirthday!" >>>print(message)Happy23rdBirthday!
>>>message="Happy"+23+"rdBirthday!"TypeError:canonlyconcatenatestr(not"int")tostr
刪除元素字符串不可修改由于字符串不可修改,只能用del語(yǔ)句刪除整個(gè)字符串。空白字符刪除使用strip()、lstrip()、rstrip()方法可以刪除字符串首尾的空白字符或指定字符。元素內(nèi)容替換>>>s1="HelloPython">>>print(s1.strip())HelloPython>>>s2="HelloPython">>>print(s2.strip())HelloPython>>>s3="HelloPython" >>>print(s3.strip())HelloPython>>>s="HelloPython">>>s.lstrip()'HelloPython'>>>s.rstrip()'HelloPython'使用index()、count()、find()、startswith()、endswith()方法進(jìn)行檢索。字符串檢索檢索元素>>>txt="Hello,welcometomyworld." >>>x=txt.index("e",5,10)>>>print(x)8>>>txt="Hello,welcometomyworld." >>>x=txt.count("my",10,24)>>>print(x)1>>>txt="Hello,welcometomyworld." >>>x=txt.find("my",10,24)>>>print(x)18>>>txt="Hello,welcometomyworld." >>>x=txt.find("q",)>>>print(x)-1>>>y=txt.index("q")ValueError:substringnotfound使用index()、count()、find()、startswith()、endswith()方法進(jìn)行檢索。字符串檢索檢索元素>>>txt="Hello,welcometomyworld." >>>x=txt.startswith("Hello")>>>print(x)True>>>txt="Hello,welcometomyworld." >>>x=txt.endswith("word")>>>print(x)False將字符串拆分為列表,使用split()方法。將列表中的元素連接為字符串,使用join()方法。列表化字符串和列表的相互操作>>>txt="hello,mynameisPeter,Iam26yearsold" >>>x=txt.split(",")>>>print(x)['hello','mynameisPeter','Iam26yearsold']>>>name='JohnJohnson’ >>>a=name.split()>>>print(a)['John','Johnson']>>>txt="apple#banana#cherry#orange" >>>x=txt.split("#",1)>>>print(x)['apple','banana#cherry#orange']字符串常用方法或函數(shù)匯總方法說(shuō)明capitalize()將第一個(gè)字符轉(zhuǎn)換為大寫casefold()將字符串轉(zhuǎn)換為小寫,Python3.3版本之后引入的,其效果和lower()方法非常相似,都可以轉(zhuǎn)換字符串中所有大寫字符為小寫。center()返回一個(gè)原字符串居中,并使用空格填充至長(zhǎng)度width的新字符串。默認(rèn)填充字符為空格。count()返回指定值在字符串中出現(xiàn)的次數(shù)encode()返回指定的編碼格式編碼字符串。endswith()如果字符串以指定值結(jié)尾,則返回trueexpandtabs()返回字符串中的tab符號(hào)('\t')轉(zhuǎn)為空格后生成的新字符串。find()在字符串中搜索指定的值,并返回找到該字符串的位置format()把指定值格式化為指定格式。format_map()針對(duì)字典類型的格式化后的新的對(duì)象index()在字符串中搜索指定的值,并返回找到該字符串的位置isalnum()如果字符串中的所有字符都是字母數(shù)字,則返回Trueisalpha()如果字符串至少有一個(gè)字符并且所有字符都是字母則返回True,否則返回False。isdecimal()如果字符串是否只包含十進(jìn)制字符返回True,否則返回False。isdigit()如果字符串只包含數(shù)字則返回True否則返回False。isidentifier()用于判斷字符串是否是有效的Python標(biāo)識(shí)符,可用來(lái)判斷變量名是否合法。islower()如果字符串中的所有字符均為小寫,則返回Trueisnumeric()如果字符串中只包含數(shù)字字符,則返回True,否則返回Falseisprintable()如果字符串中的所有字符都是可打印的,則返回Trueisspace()如果字符串中的所有字符都是空格,則返回Trueistitle()如果字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫則返回True,否則返回False.isupper()如果字符串中的所有字符均為大寫,則返回Truejoin()獲取可迭代對(duì)象中的所有元素,并將它們連接為一個(gè)字符串。ljust()返回一個(gè)原字符串左對(duì)齊,并使用空格填充至指定長(zhǎng)度的新字符串。如果指定的長(zhǎng)度小于原字符串的長(zhǎng)度則返回原字符串。lower()將字符串轉(zhuǎn)換為小寫lstrip()返回截掉字符串左邊的空格或指定字符后生成的新字符串。maketrans()用于創(chuàng)建字符映射的轉(zhuǎn)換表,對(duì)于接受兩個(gè)參數(shù)的最簡(jiǎn)單的調(diào)用方式,第一個(gè)參數(shù)是字符串,表示需要轉(zhuǎn)換的字符,第二個(gè)參數(shù)也是字符串表示轉(zhuǎn)換的目標(biāo)。partition()返回一個(gè)3元的元組,第一個(gè)為分隔符左邊的子串,第二個(gè)為分隔符本身,第三個(gè)為分隔符右邊的子串。replace()返回一個(gè)字符串,其中將指定值替換為指定值rfind()返回字符串最后一次出現(xiàn)的位置(從右向左查詢),如果沒有匹配項(xiàng)則返回-1。rindex()返回子字符串最后一次出現(xiàn)在字符串中的的索引位置,如果沒有匹配項(xiàng)則會(huì)報(bào)一個(gè)異常。rjust()返回一個(gè)原字符串右對(duì)齊,并使用空格填充至長(zhǎng)度width的新字符串。如果指定的長(zhǎng)度小于字符串的長(zhǎng)度則返回原字符串。rpartition()返回一個(gè)3元的元組,第一個(gè)為分隔符左邊的子串,第二個(gè)為分隔符本身,第三個(gè)為分隔符右邊的子串。rsplit()在指定的分隔符處分割字符串,并返回一個(gè)列表rstrip()返回刪除string字符串末尾的指定字符后生成的新字符串。split()在指定的分隔符處分割字符串,并返回一個(gè)列表splitlines()在換行符處分割字符串并返回一個(gè)列表startswith()如果字符串以指定值開頭,則返回truestrip()返回移除字符串頭尾指定的字符生成的新字符串。swapcase()交換大小寫,小寫變成大寫,反之亦然title()將每個(gè)單詞的第一個(gè)字符轉(zhuǎn)換為大寫translate()返回翻譯后的字符串upper()將字符串轉(zhuǎn)換為大寫zfill()返回指定長(zhǎng)度的字符串,原字符串右對(duì)齊,前面填充0。通用操作05通用操作操作描述示例:X=[1,1,2,3,5,8];Y='hello'X1+X2聯(lián)接序列X1和X2,生成新序列
注意:序列類型必須相同,列表不能與字符串相加。>>>X+X[1,1,2,3,5,8,1,1,2,3,5,8]>>>Y+Y'hellohello'X*n序列X重復(fù)n次,生成新序列>>>X*2[1,1,2,3,5,8,1,1,2,3,5,8]>>>Y*2'hellohello'X[i]引用序列X中下標(biāo)為i的成員>>>X[0][1]>>>Y[-1]'o'X[i:j]引用序列X中下標(biāo)為i到j(luò)-1的子序列切片操作,用于訪問部分?jǐn)?shù)據(jù)>>>X[1:-3][1,2]>>>X[3:][3,5,8]>>>X[:3][1,1,2]X[i:j:k]引用序列X中下標(biāo)為i到j(luò)-1的子序列,步長(zhǎng)為k>>>X[0:5:2][1,2,5]>>>X[-1:1:-1][8,5,3,2]>>>X[::-1][8,5,3,2,1,1]len(X)計(jì)算序列X中成員的個(gè)數(shù)>>>len(X)6>>>len(Y)5max(X)序列X中的最大值字符串的大小是按照其Unicode編碼來(lái)比較的>>>max(X)8>>>max(Y)'o'min(X)序列X中的最小值>>>min(X)1>>>min(Y)'e'vinX檢查v是否在序列X中,返回布爾值對(duì)于列表,只能判斷某個(gè)元素是否在序列中;對(duì)于字符串,可以判斷某段字符是否在該序列中。>>>[1,1]inXFalse>>>[1,1]in[[1,1],2,3,5,8]True>>>'l'in'hello'True>>>'ll'in'hello'TruevnotinX檢查v是否不在序列X中,返回布爾值
文件文件處理是字符串?dāng)?shù)據(jù)類型的應(yīng)用程序。所有文件處理程序都能夠保存和讀取文檔作為磁盤上的文件。文件的輸入和輸出實(shí)際上是字符串處理的另一種形式。文件是存儲(chǔ)在輔助存儲(chǔ)器上的數(shù)據(jù)序列,可以包含任何數(shù)據(jù)類型,最簡(jiǎn)單的是文本文件。06使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件調(diào)用語(yǔ)法為:open(name[,mode])其中:name是一個(gè)字符串,提供了磁盤當(dāng)前相對(duì)路徑下的文件名,又或者是該文件的絕對(duì)路徑;mode參數(shù)決定了打開文件的模式,如只讀、寫入、追加等,該參數(shù)可選,默認(rèn)文件訪問模式為只讀。mode參數(shù)描述t文本模式(默認(rèn))。x寫模式,新建一個(gè)文件,如果該文件已存在則會(huì)報(bào)錯(cuò)。b二進(jìn)制模式。+打開一個(gè)文件進(jìn)行更新(可讀可寫)。U通用換行模式(不推薦)。r以只讀方式打開文件。文件的指針將會(huì)放在文件的開頭。這是默認(rèn)模式。rb以二進(jìn)制格式打開一個(gè)文件用于只讀。文件指針默認(rèn)放在文件的開頭。一般用于非文本文件如圖片等。r+打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。rb+以二進(jìn)制格式打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。
一般用于非文本文件如圖片等。w打開一個(gè)文件只用于寫入。如果該文件已存在,則打開文件,并從開頭開始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。wb以二進(jìn)制格式打開一個(gè)文件只用于寫入。如果該文件已存在,則打開文件,并從開頭開始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。一般用于非文本文件如圖片等。w+打開一個(gè)文件用于讀寫。如果該文件已存在,則打開文件,并從開頭開始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。wb+以二進(jìn)制格式打開一個(gè)文件用于讀寫。
如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。一般用于非文本文件如圖片等。a打開一個(gè)文件用于追加。如果該文件已存在,文件指針放在文件結(jié)尾,新內(nèi)容被寫入到已有內(nèi)容之后。
如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。ab以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針放在文件結(jié)尾,新內(nèi)容被寫入到已有內(nèi)容之后。
如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。a+打開一個(gè)文件用于讀寫。如果該文件已存在,文件指針放在文件結(jié)尾,文件打開時(shí)會(huì)是追加模式。
如果該文件不存在,創(chuàng)建新文件用于讀寫。ab+以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件#read_numbers.py
fname=input("Enterfilename:") infile=open(fname,"r")data1=infile.read()print(data1)infile.close()
輸出:Enterfilename:numbers.txtThisisatxtwithphone-numbers:13745638574150849275881346477412215780990234使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件#readline_numbers.py'''打開文件,對(duì)象保存至infile'''data2=infile.readline()print(data2)#若不需要整行內(nèi)容獲取,而是部分字節(jié),可以在()輸入整數(shù),表示需要讀取前幾個(gè)字節(jié)#注意,之前已讀取的行信息將不再被讀取data2_2=infile.readline(5)print(data2_2)infile.close()輸出:Enterfilename:numbers.txtThisisatxtwithphone-numbers:13745使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件#readline_numbers_2.py'''打開文件,對(duì)象保存至infile'''while1:data=infile.readline()ifnotdata:breakprint(data)infile.close()
輸出:Enterfilename:numbers.txtThisisatxtwithphone-numbers:
使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件#readlines_numbers.py'''打開文件,對(duì)象保存至infile'''data3=infile.readlines()print(data3)infile.close()
輸出:Enterfilename:numbers.txt['Thisisatxtwithphone-numbers:\n',n',n',n',n']使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件#readlines_numbers_2.py'''打開文件,對(duì)象保存至infile'''#如果返回的字節(jié)總數(shù)大于5,則不要返回下一行data4=infile.readlines(5)print(data4)infile.close()
輸出:Enterfilename:numbers.txt['Thisisatxtwithphone-numbers:\n']使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件#readlines_numbers_3.py'''打開文件,對(duì)象保存至infile '''fordataininfile.readlines(): print(data)infile.close()
輸出結(jié)果同readline_numbers_2.py使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件#read_each_line_numbers.py'''打開文件,對(duì)象保存至infile'''
forlineininfile:print(line)infile.close()
輸出結(jié)果同readline_numbers_2.py使用`open()`函數(shù)創(chuàng)建一個(gè)文件對(duì)象,指定文件名和打開模式(讀取、寫入、追加等)打開文件使用文件對(duì)象的`read()`、`readline()`或`readlines()`方法讀取文件內(nèi)容讀取文件內(nèi)容使用文件對(duì)象的`write()`方法寫入內(nèi)容到文件寫入文件內(nèi)容文件使用文件對(duì)象的`close()`方法關(guān)閉文件關(guān)閉文件#continue_write.pyoutfile=open("writein.txt","a") #若需要覆蓋原始內(nèi)容,mode選擇woutfile.write("12785776986") #print語(yǔ)句也能寫入:print("12785776986",file=outfile)outfile.close()
#打開并讀取文件后追加:infile=open("writein.txt","r")print(infile.read())infile.close()
輸出:Thisisatxtwithphone-numbers:1374563857415084927588134647741221578099023412785776986
字典和集合的基本操作字典集合可變類型和不可變類型字典字典(Dictionary)是Python中的一種無(wú)序、可變、有索引的集合,用于存儲(chǔ)鍵值對(duì)。字典中的每個(gè)鍵值對(duì)都包含一個(gè)鍵和其對(duì)應(yīng)的值,鍵是唯一的,但值可以重復(fù)。01thisdict={"name":"cjavapy", "age":3,"gender":"man"}字典的創(chuàng)建創(chuàng)建空字典使用花括號(hào)`{}`或`dict()`函數(shù)創(chuàng)建空字典。直接賦值創(chuàng)建使用花括號(hào)并指定鍵值對(duì)創(chuàng)建字典。使用關(guān)鍵字參數(shù)創(chuàng)建使用`dict()`函數(shù)和關(guān)鍵字參數(shù)創(chuàng)建字典。使用`fromkeys()`方法創(chuàng)建使用`fromkeys()`方法創(chuàng)建具有指定鍵的字典。>>>a={} >>>a=dict()>>>dic={'spam':1,'egg':2,'bar':3} >>>dic{'bar':3,'egg':2,'spam':1}>>>dic=dict(spam=1,egg=2,bar=3) >>>x=('key1','key2','key3') >>>y=0>>>thisdict=dict.fromkeys(x,y)>>>print(thisdict){'key1':0,'key2':0,'key3':0}
字典的創(chuàng)建通過二元組列表創(chuàng)建使用`dict()`函數(shù)將二元組列表轉(zhuǎn)換為字典。使用`zip`函數(shù)創(chuàng)建結(jié)合`dict()`和`zip`函數(shù)創(chuàng)建字典。使用字典推導(dǎo)式通過推導(dǎo)式創(chuàng)建字典。>>>lis=[('spam',1),('egg',2),('bar',3)] >>>dic=dict(lis)>>>dic=dict(zip('abc',[1,2,3])) >>>print(dic){'a':1,'c':3,'b':2}>>>dic={i:2*iforiinrange(3)} >>>dic{0:0,1:2,2:4}訪問字典的值刪除字典條目添加/修改字典條目通過鍵訪問字典中的值,也可以使用`get()`方法獲取指定鍵的值。使用賦值語(yǔ)句添加新的鍵值對(duì),或使用`update()`方法更新字典。使用`del`語(yǔ)句刪除指定的鍵值對(duì),或使用`pop()`方法刪除指定鍵及其對(duì)應(yīng)的值,或使用`clear()`方法清空字典,或使用`popitem()`方法刪除最后插入的鍵值對(duì)?;镜淖值洳僮?gt;>>thisdict={"name":"cjavapy","age":3,"gender":"man"} >>>thisdict["name"]'cjavapy'>>>thisdict.get("age") 3>>>thisdict.get("job")>>>thisdictNone訪問字典的值刪除字典條目添加/修改字典條目通過鍵訪問字典中的值,也可以使用`get()`方法獲取指定鍵的值。使用賦值語(yǔ)句添加新的鍵值對(duì),或使用`update()`方法更新字典。使用`del`語(yǔ)句刪除指定的鍵值對(duì),或使用`pop()`方法刪除指定鍵及其對(duì)應(yīng)的值,或使用`clear()`方法清空字典,或使用`popitem()`方法刪除最后插入的鍵值對(duì)?;镜淖值洳僮?gt;>>thisdict={"name":"cjavapy","age":3,"gender":"man"} #獲取所有key>>>thisdict.keys() dict_keys(['name','age','gender’])
#獲取所有值>>>thisdict.values()dict_values(['cjavapy',3,'man’])
#獲取所有鍵值對(duì)>>>thisdict.items()dict_items([('name','cjavapy'),('age',3),('gender','man’)])
#利用
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度家庭裝修半包合同室內(nèi)空氣治理及檢測(cè)范本3篇
- 二零二五年度醫(yī)療健康產(chǎn)業(yè)貸款延期還款協(xié)議范本與產(chǎn)業(yè)扶持3篇
- 二零二五年度商鋪轉(zhuǎn)讓協(xié)議書標(biāo)準(zhǔn)范本3篇
- 2025年上教版選擇性必修3地理上冊(cè)階段測(cè)試試卷
- 2025年粵教版選修1地理上冊(cè)月考試卷
- 二零二五年度創(chuàng)新水果電商O2O模式合作合同3篇
- 2025年滬科版選擇性必修2地理上冊(cè)階段測(cè)試試卷
- 2025年華東師大版高三歷史上冊(cè)月考試卷
- 2025年青島版六三制新選修3生物下冊(cè)月考試卷
- 2025年北師大版高二化學(xué)下冊(cè)階段測(cè)試試卷
- 閱讀理解(專項(xiàng)訓(xùn)練)-2024-2025學(xué)年湘少版英語(yǔ)六年級(jí)上冊(cè)
- 民用無(wú)人駕駛航空器產(chǎn)品標(biāo)識(shí)要求
- 中國(guó)音樂史與名作賞析智慧樹知到期末考試答案章節(jié)答案2024年山東師范大學(xué)
- 傷口護(hù)理小組工作總結(jié)共34張課件
- 小學(xué)科學(xué)教育科學(xué)四年級(jí)上冊(cè)運(yùn)動(dòng)和力《運(yùn)動(dòng)與摩擦力》說(shuō)課稿修
- 區(qū)域地質(zhì)及礦區(qū)地質(zhì)圖清繪規(guī)程
- 10套深藍(lán)色商務(wù)醫(yī)院科室組織架構(gòu)PPT圖表合集
- DB44∕T 1784-2015 木本園林植物修剪技術(shù)規(guī)程
- 青年心理學(xué)第六講(人際關(guān)系與溝通)
- 核醫(yī)學(xué)科PDCA案例
- ABB斷路器參數(shù)調(diào)試講義
評(píng)論
0/150
提交評(píng)論