Python語(yǔ)言程序設(shè)計(jì) 課件 5-字符串、列表和元組_第1頁(yè)
Python語(yǔ)言程序設(shè)計(jì) 課件 5-字符串、列表和元組_第2頁(yè)
Python語(yǔ)言程序設(shè)計(jì) 課件 5-字符串、列表和元組_第3頁(yè)
Python語(yǔ)言程序設(shè)計(jì) 課件 5-字符串、列表和元組_第4頁(yè)
Python語(yǔ)言程序設(shè)計(jì) 課件 5-字符串、列表和元組_第5頁(yè)
已閱讀5頁(yè),還剩66頁(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語(yǔ)言程序設(shè)計(jì)PythonLanguageProgramming5字符串、列表和元組單詞本wordbook的創(chuàng)建序列字符串列表元組單詞本wordbook的創(chuàng)建【例5-1】在英語(yǔ)的學(xué)習(xí)過(guò)程中,遇到不認(rèn)識(shí)的單詞,可以將其添加到單詞本中,用于后續(xù)復(fù)習(xí)使用。要求:打開一個(gè)英文文本,過(guò)濾掉介詞、代詞等停用詞(去掉長(zhǎng)度小于5的單詞)后,用該文本中的剩余詞匯構(gòu)建初始單詞本wordbook.txt。對(duì)于給定文本,遍歷其中的詞匯,對(duì)于長(zhǎng)度大于5的單詞,若其不在當(dāng)前的單詞本中,則把它添加到單詞本中。單詞本wordbook的創(chuàng)建【參考代碼】file=open('DeclarationofIndependent.txt','r').read()#將文本讀出字符串file.replace(',','')file.replace('.','')filelist=file.split()#字符串單詞為元素轉(zhuǎn)換為列表filelist1=[]#構(gòu)建空列表forwordinfilelist:#遍歷列表中的元素iflen(word)>5:#如果單詞的長(zhǎng)度大于5cleanword=word.lower().strip('.,')#將大寫全部轉(zhuǎn)換為小寫并去除標(biāo)點(diǎn)符號(hào)filelist1.append(cleanword)#將清洗過(guò)的單詞添加到列表中#單詞本初始化wordbook=open('wordbook.txt','w')#以讀的方式打開文本文件forxinfilelist1:#對(duì)已經(jīng)清洗過(guò)單詞元素的列表做遍歷wordbook.write(x)#把單詞元素寫入單詞本wordbook.write('\n')#每寫一個(gè)單詞的同時(shí),寫入一個(gè)換行wordbook.close()#關(guān)閉單詞本單詞本wordbook的創(chuàng)建#更新單詞本s='Nowweareengagedinagreatcivilwar,testingwhetherthatnation,oranynationsoconceivedandsodedicated,canlongendure.Wearemetonagreatbattle-fieldofthatwar.Wehavecometodedicateaportionofthatfield,asafinalrestingplaceforthosewhoheregavetheirlivesthatthatnationmightlive.Itisaltogetherfittingandproperthatweshoulddothis.'s.replace(',','')s.replace('.','')list_s=s.split()#將給定的文本字符串轉(zhuǎn)換為列表clean_s=[]forwordinlist_s:#對(duì)列表做遍歷,清洗單詞iflen(word)>5:cleanword=word.lower().strip('.,')clean_s.append(cleanword)bookfile=open('wordbook.txt','r').read()#打開原有單詞本文件,放入列表中wordbookfile=bookfile.split()print(len(wordbookfile))#輸出原有單詞本的單詞數(shù)量forwordinclean_s:ifwordnotinwordbookfile:#更新原有單詞本wordbookfile.append(word)bookfile=open('wordbook.txt','w')forwinwordbookfile:bookfile.write(w)bookfile.close()print(len(wordbookfile))#輸出新的單詞本的單詞數(shù)量序列什么是序列標(biāo)準(zhǔn)類型的操作符序列類型的操作符內(nèi)建函數(shù)什么是序列一組元素按照一定的順序組合在一起則稱為序列序列中每一個(gè)元素都用一個(gè)數(shù)字來(lái)表示它的位置,這個(gè)數(shù)字稱為索引,以0,1,2...為順序遞推字符串、列表、元組、buffer對(duì)象和xrange對(duì)象是Python五種內(nèi)建的序列什么是序列【例5-2】簡(jiǎn)單的序列操作【參考代碼】>>>astring='helloworld'#字符串序列>>>alist=list(astring)#將字符串轉(zhuǎn)換為列表序列>>>alist['h','e','l','l','o','','w','o','r','l','d']#每個(gè)字母就構(gòu)成列表的元素>>>atuple=tuple(alist)#將列表轉(zhuǎn)換為元組>>>atuple('h','e','l','l','o','','w','o','r','l','d')#元組以小括號(hào)為標(biāo)志>>>alist.clear()#清除元素>>>alist[]>>>alist=[1,5,6,8]+[4,5,7,9]#加號(hào)‘+’連結(jié)序列,而非加法操作>>>alist[1,5,6,8,4,5,7,9]>>>alist[4:7]#列表的切片操作[4,5,7]>>>astring[0]#輸出字符串序列的第0號(hào)元素'h'>>>alist.index(7)#輸出列表中元素7的索引6>>>alist[7]#輸出列表序列中索引為7的元素9>>>sorted(alist)#對(duì)列表序列進(jìn)行排序[1,4,5,5,6,7,8,9]>>>sorted(astring)['','d','e','h','l','l','l','o','o','r','w']#對(duì)字符串元素進(jìn)行排序標(biāo)準(zhǔn)類型的操作符標(biāo)準(zhǔn)類型的操作符共分為三種:值比較、對(duì)象身份比較、布爾運(yùn)算(邏輯運(yùn)算)值比較按序比較,只有在元素值相同,順序也相同的情況下,兩個(gè)序列才相等常見(jiàn)的值比較運(yùn)算:>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于)>>>'father'>'children'True>>>[1,2,3,4]==[13,1,3,4,4]False>>>(1,2,3)==(1,2,3)True>>>[1,2,3,4]>=[1,3,5,6]False標(biāo)準(zhǔn)類型的操作符標(biāo)準(zhǔn)類型的操作符共分為三種:值比較、對(duì)象身份比較、布爾運(yùn)算(邏輯運(yùn)算)對(duì)象身份比較比較兩個(gè)序列是否為同一個(gè)對(duì)象對(duì)象身份比較運(yùn)算的運(yùn)算符有:is(是),isnot(不是)>>>a=[1,2,3]>>>b=[1,2,3]>>>a==bTrue>>>aisbFalse>>>c=[1,2,3]>>>d=c>>>cisdTrue標(biāo)準(zhǔn)類型的操作符標(biāo)準(zhǔn)類型的操作符共分為三種:值比較、對(duì)象身份比較、布爾運(yùn)算(邏輯運(yùn)算)布爾運(yùn)算返回值為真或假連結(jié)序列對(duì)象的常見(jiàn)的布爾運(yùn)算有:not(非),and(與),or(或)>>>('father'>'children')and([1,2,3,4]==[13,1,3,4,4])False>>>('father'>'children')or([1,2,3,4]==[13,1,3,4,4])True>>>not'father'>'children'False序列類型的操作符序列類型的操作符是指序列所特有的操作符和在序列上產(chǎn)生和其他數(shù)據(jù)結(jié)構(gòu)不同效果的操作符根據(jù)操作符的優(yōu)先級(jí)從高到低,分別為:索引、切片、重復(fù)、連接、成員檢查索引([])seq[index]

獲取序列seq中下標(biāo)為index的元素>>>a=[1,2,3]>>>a[1]2序列類型的操作符根據(jù)操作符的優(yōu)先級(jí)從高到低,分別為:索引、切片、重復(fù)、連接、成員檢查切片([index1:index2],[index1:index2:length])seq[index1:index2]

獲取下標(biāo)從index1開始到index2(不包括)為止的元素集合seq[index1:index2:length]

獲取下標(biāo)從index1開始到index2(不包括)為止步長(zhǎng)為length的元素集合例>>>a=[1,2,3,4,5,6]>>>a[0:2][1,2]>>>a[0:6:2][1,3,5]序列類型的操作符根據(jù)操作符的優(yōu)先級(jí)從高到低,分別為:索引、切片、重復(fù)、連接、成員檢查重復(fù)(*)seq*Integer

獲得seq序列的Integer(整型數(shù))次重復(fù)>>>[1,2,3]*3[1,2,3,1,2,3,1,2,3]序列類型的操作符根據(jù)操作符的優(yōu)先級(jí)從高到低,分別為:索引、切片、重復(fù)、連接、成員檢查連接(+)seq1+seq2

連接序列1和序列2,以獲得一個(gè)按順序包含兩個(gè)序列全部元素的新序列。但是兩個(gè)序列是要同一個(gè)類型的>>>[1,2,3]+[4,5,6][1,2,3,4,5,6]>>>[1,2,3]+'abc'#連接兩個(gè)不同序列對(duì)象時(shí),會(huì)報(bào)錯(cuò)Traceback(mostrecentcalllast):File"<pyshell#0>",line1,in<module>[1,2,3]+'abc'TypeError:canonlyconcatenatelist(not"str")tolist序列類型的操作符根據(jù)操作符的優(yōu)先級(jí)從高到低,分別為:索引、切片、重復(fù)、連接、成員檢查成員檢查(in和notin)objectinSeq

判斷元素object是否在序列Seq中,若在則返回True反之返回FalseobjectnotinSeq

判斷元素object是否不在序列Seq中,若在則返回False反之返回True>>>1in[1,2,3]True>>>4in[1,2,3]False>>>1notin[1,2,3]False>>>4notin[1,2,3]True內(nèi)建函數(shù)類型轉(zhuǎn)換函數(shù)list(),str()和tuple()三個(gè)類型轉(zhuǎn)換函數(shù)被用做在各種序列類型之間轉(zhuǎn)換>>>a='abcdef'>>>b=[1,2,3]>>>c=(1,2,3)>>>type(a)<class'str'>>>>type(b)<class'list'>>>>type(c)<class'tuple'>>>>type(list(a))<class'list'>>>>list(a)['a','b','c','d','e','f']>>>str(b)'[1,2,3]'>>>type(str(c))<class'str'>內(nèi)建函數(shù)len()函數(shù)len()函數(shù)接受一個(gè)序列作為參數(shù),返回這個(gè)序列的長(zhǎng)度(元素的個(gè)數(shù))>>>len('abcdefghijk')11>>>len([1,2,3,4,5])5內(nèi)建函數(shù)max()、min()和sum()函數(shù)接受一個(gè)序列作為參數(shù),返回該序列中最大值、最小值和元素的和,前提是該序列中各個(gè)元素之間是可比較的或可計(jì)算的>>>max([1,32,12,14])32>>>min([3,55,2,13])2>>>min('jihbgyr')'b'>>>sum([1,2,3])6>>>sum('asd')Traceback(mostrecentcalllast):File"<pyshell#3>",line1,in<module>sum('asd')TypeError:unsupportedoperandtype(s)for+:'int'and'str'內(nèi)建函數(shù)reversed()函數(shù)reversed()函數(shù)接受一個(gè)序列作為參數(shù),返回一個(gè)以逆序訪問(wèn)的迭代器,需要for循環(huán),將迭代器中的元素逐個(gè)輸出>>>foriteminreversed([1,2,3,4,5]):print(item)54321>>>reversed('sdfgh')<reversedobjectat0x0000021A79DA4D90>內(nèi)建函數(shù)sorted()函數(shù)sorted()函數(shù)接受一個(gè)序列,返回一個(gè)有序的列表。其中序列中各個(gè)元素必須是兩兩可比的sorted(seq,key=None,reverse=False)

seq為用于被排序的序列,key為指定的排序元素,reverse指定排序規(guī)則,reverse=True時(shí)降序,reverse=False時(shí)升序(默認(rèn))內(nèi)建函數(shù)sorted(seq,key=None,reverse=False)

seq為用于被排序的序列,key為指定的排序元素,reverse指定排序規(guī)則,reverse=True時(shí)降序,reverse=False時(shí)升序(默認(rèn))>>>sorted([4,1,66,43])[1,4,43,66]>>>sorted([4,1,66,43],reverse=True)[66,43,4,1]>>>sorted(['a','k','e','q'])['a','e','k','q']>>>example_list=[5,0,6,1,2,7,3,4]>>>result_list=sorted(example_list,key=lambdax:x*2)>>>result_list[0,1,2,3,4,5,6,7]>>>students=[('john','A',15),('jane','B',12),('dave','B',10),]>>>sorted(students,key=lambdastudent:student[2])#按照學(xué)生年齡排序[('dave','B',10),('jane','B',12),('john','A',15)]>>>sorted(students,key=lambdastudent:student[2],reverse=True)#按照學(xué)生年齡逆序排列[('john','A',15),('jane','B',12),('dave','B',10)]內(nèi)建函數(shù)enumerate()函數(shù)enumerate()接受一個(gè)序列作為參數(shù),返回一個(gè)enumerate對(duì)象,該對(duì)象生成由序列每個(gè)元素的index(索引值)和item(元素值)組成的元組>>>a=['a','b','c','d','e']>>>foriteminenumerate(a): print(item)(0,'a')(1,'b')(2,'c')(3,'d')(4,'e')內(nèi)建函數(shù)zip()函數(shù)zip()函數(shù)接受多個(gè)序列,返回一個(gè)列表。這個(gè)列表的長(zhǎng)度為多個(gè)序列中最短序列的長(zhǎng)度,第一個(gè)元素為各個(gè)序列第一個(gè)元素組成的元組,其他元素依次類推>>>foriteminzip([5,6,3,7],'adkvjdfff',(2,3,4,2,5)): print(item)(5,'a',2)(6,'d',3)(3,'k',4)(7,'v',2)內(nèi)建函數(shù)seq.index(x[,i[,j]])函數(shù)得到序列seq中從i開始到j(luò)位置中第一次出現(xiàn)元素x的位置>>>a=['a','d','g','f','g']>>>a.index('g')2>>>a.index('g',3)4內(nèi)建函數(shù)seq.count(x)函數(shù)計(jì)算序列seq中出現(xiàn)元素x的總次數(shù)>>>a=['a','d','g','f','g']>>>a.count('g')2字符串字符串類型字符串的操作字符串的獨(dú)特特性字符串的內(nèi)建函數(shù)字符串的操作字符串的創(chuàng)建和賦值>>>aString='abcdefg'#將一個(gè)創(chuàng)建好的字符串賦值給變量,就完成了字符串的賦值>>>bString="abcdefg">>>cString=str([1,2,3,45,66,6])>>>cString'[1,2,3,45,66,6]'>>>aString'abcdefg'>>>bString'abcdefg'>>>aStringisbStringTrue字符串的操作字符串的索引和切片>>>aString='helloworld'>>>aString[:5]'hello'>>>aString[-1]'d'>>>aString[::-1]'dlrowolleh'注負(fù)數(shù)來(lái)索引序列時(shí),-1代表最后一位,-2代表最后第二位切片操作中,seq[i:j]若i省略,代表從第一位開始,j省略代表直至最后一位seq[::-1]相當(dāng)于將seq序列進(jìn)行翻轉(zhuǎn)字符串的操作“改變”字符串>>>aString='helloworld'>>>aString'helloworld'>>>aString=aString[:4]+aString[5:]>>>aString'hellworld'字符串的操作使用Python的string模塊中預(yù)定義的字符串>>>importstring>>>string.ascii_uppercase'ABCDEFGHIJKLMNOPQRSTUVWXYZ'>>>string.ascii_lowercase'abcdefghijklmnopqrstuvwxyz'>>>string.ascii_letters'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'>>>string.digits'0123456789'>>>string.punctuation'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'字符串的獨(dú)特特性不可改變性想要改變一個(gè)字符串只能通過(guò)創(chuàng)建一個(gè)新字符串的方法,拋棄老字符串,達(dá)到改變的效果。若強(qiáng)行給字符串中某一元素賦值以試圖改變字符串,就會(huì)報(bào)錯(cuò)>>>aString='helloworld'>>>aString[1]='c'Traceback(mostrecentcalllast):File"<pyshell#27>",line1,in<module>aString[1]='c'TypeError:'str'objectdoesnotsupportitemassignment字符串的獨(dú)特特性轉(zhuǎn)義字符在字符中使用特殊字符(如引號(hào))時(shí),Python和其他高級(jí)語(yǔ)言一樣,使用反斜杠(\)來(lái)轉(zhuǎn)義字符s='I\'mfine'>>>s='I'mfine'SyntaxError:invalidsyntax#報(bào)錯(cuò)字符串的獨(dú)特特性轉(zhuǎn)義字符轉(zhuǎn)義字符描述\(在行尾時(shí))續(xù)行符\\反斜杠符號(hào)\'單引號(hào)\"雙引號(hào)\a響鈴\b退格(Backspace)\e轉(zhuǎn)義\000空\(chéng)n換行\(zhòng)v縱向制表符\t橫向制表符\r回車\f換頁(yè)\oyy八進(jìn)制數(shù),yy代表的字符,例如:\o12代表?yè)Q行\(zhòng)xyy十六進(jìn)制數(shù),yy代表的字符,例如:\x0a代表?yè)Q行\(zhòng)other其它的字符以普通格式輸出表5-1常見(jiàn)的轉(zhuǎn)義字符字符串的獨(dú)特特性轉(zhuǎn)義字符另一種方法:用r和R來(lái)定義原始字符串>>>print('\thello') hello>>>print('\\thello')\thello>>>print(r'hello')hello>>>print(r'\thello')\thello字符串的獨(dú)特特性格式化字符串符號(hào)描述%c格式化字符及其ASCII碼%s格式化字符串%d格式化整數(shù)%u格式化無(wú)符號(hào)整型%o格式化無(wú)符號(hào)八進(jìn)制數(shù)%x格式化無(wú)符號(hào)十六進(jìn)制數(shù)%X格式化無(wú)符號(hào)十六進(jìn)制數(shù)(大寫)%f格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度%e用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)%E作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)%g%f和%e的簡(jiǎn)寫%G%f和%E的簡(jiǎn)寫%p用十六進(jìn)制數(shù)格式化變量的地址表5-2字符串格式化符號(hào)字符串的獨(dú)特特性格式化字符串符號(hào)功能*定義寬度或者小數(shù)點(diǎn)精度-用做左對(duì)齊+在正數(shù)前面顯示加號(hào)(+)<sp>在正數(shù)前面顯示空格#在八進(jìn)制數(shù)前面顯示零('0'),在十六進(jìn)制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X')0顯示的數(shù)字前面填充'0'而不是默認(rèn)的空格%'%%'輸出一個(gè)單一的'%'(var)映射變量(字典參數(shù))m.n.m是顯示的最小總寬度,n是小數(shù)點(diǎn)后的位數(shù)表5-3格式化操作輔助指令字符串的獨(dú)特特性格式化字符串例>>>'今天我想買%d個(gè)%s'%(5,'蘋果')'今天我想買5個(gè)蘋果'>>>'%.2f'%3.1415926'3.14'>>>'%E'%1234.567890'1.234568E+03'字符串的獨(dú)特特性格式化字符串str.format()通過(guò){}和:來(lái)代替以前的%。format函數(shù)可以接受不限個(gè)參數(shù),位置可以不按順序>>>"{}{}".format("hello","world")'helloworld'>>>"{1}{0}{1}".format("hello","world")'worldhelloworld'字符串的獨(dú)特特性三引號(hào)Python中三引號(hào)允許一個(gè)字符串跨多行,字符串中可以包含換行符、制表符以及其他特殊字符>>>a='''這是第一行換一行寫'''>>>print(a)這是第一行換一行寫>>>a'這是第一行\(zhòng)n換一行寫\n'字符串內(nèi)建函數(shù)(常用)string.find(str,beg=0,end=len(string))檢測(cè)str是否包含在string中,beg和end指定范圍。類似序列的index方法,但是index方法找不到時(shí)會(huì)返回一個(gè)異常,而find方法會(huì)返回-1>>>'abcdefghij'.find('c')2>>>'abcdefghij'.find('k')-1>>>'abcdefghij'.index('k')Traceback(mostrecentcalllast):File"<pyshell#2>",line1,in<module>'abcdefghij'.index('k')ValueError:substringnotfound字符串內(nèi)建函數(shù)(常用)string.split(str,num=string.count(str))以str為分隔符切片string,如果num有指定值,則僅分隔num個(gè)子字符串>>>'dafagahajaka'.split('a')['d','f','g','h','j','k','']>>>'dafagahajaka'.split('a',5)['d','f','g','h','j','ka']字符串內(nèi)建函數(shù)(常用)string.upper()和string.lower()將所有字母轉(zhuǎn)換為大/小寫字母>>>'abcDEFghi12Kl'.upper()'ABCDEFGHI12KL'>>>'abcDEFghi12Kl'.lower()'abcdefghi12kl'字符串內(nèi)建函數(shù)(常用)string.startswith(obj,beg=0,end=len(string))和string.endswith(obj,beg=0,end=len(string))前者檢查字符串是否是以obj開頭,是則返回True,否則返回False。如果beg和end指定值,則在指定范圍內(nèi)檢查。后者檢查是否以obj結(jié)尾>>>'acbdefghij'.startswith('acb')True>>>'acbdefghij'.startswith('ab')False>>>'acbdefghij'.endswith('hij')True字符串內(nèi)建函數(shù)(常用)string.strip([obj])刪除string字符串前后的的obj,如果不傳參數(shù),刪除前后空格>>>'helloworld!'.strip()'helloworld!'>>>'@@@@#@helloworld!@#@@'.strip('@')'#@helloworld!@#'>>>'helloworld!'.strip('hello')'world!'字符串內(nèi)建函數(shù)(常用)string.join(seq)以string作為分隔符,將seq中所有的元素(的字符串表示)合并為一個(gè)新的字符串>>>'&'.join('abcdefg')'a&b&c&d&e&f&g'>>>'@'.join(['hello','world','!'])'hello@world@!'字符串內(nèi)建函數(shù)(常用)string.replace(old,new[,max])把將字符串string中的子串old替換成新字符串new,如果max指定,則替換不超過(guò)max次>>>'hello@world@!'.replace('@','#')'hello#world#!'>>>'hello@world@!'.replace('@','#',1)'hello#world@!'字符串內(nèi)建函數(shù)(常用)string.partition(str)從左向右遇到分隔符str把字符串分割成兩部分,返回頭、分割符、尾三部分的三元組。如果沒(méi)有找到分割符,就返回string本身和兩個(gè)空元素組成三元組>>>a='helloworldIamcoming'>>>a.partition('Iam')('helloworld','Iam','coming')>>>a.partition('abc')('helloworldIamcoming','','')字符串內(nèi)建函數(shù)(常用)【例5-3】判斷是否是一個(gè)正確的變量名。寫一個(gè)小程序,判斷變量名是否符合Python變量的命名規(guī)則?!緟⒖即a】importstringimportkeywordalphas=string.ascii_letters+'_'nums=string.digitsinp=input('請(qǐng)輸入一個(gè)變量名:')#判斷輸入的是否Python關(guān)鍵字ifinpinkeyword.kwlist:print('變量名不可以是Python中的關(guān)鍵字')eliflen(inp)>0:#判斷是否以字母或則_開頭ifinp[0]notinalphas:print('不合法!變量名必須以字母或者_(dá)開頭')else:s=TrueforotherCharininp[1:]:#判斷是否只出現(xiàn)了字母數(shù)字或_ifotherCharnotinalphas+nums:print('不合法,變量名里只能出現(xiàn)字母數(shù)字或_')s=Falsebreakifs:print('對(duì)的,是個(gè)合法的變量名')else:print('不能什么也不輸入')列表列表的定義列表的操作列表的常用內(nèi)建函數(shù)列表的定義定義長(zhǎng)度、元素皆可變列表元素的數(shù)據(jù)類型可以不同可任意添加或減少元素創(chuàng)建用一對(duì)大括號(hào)’[]’>>>alist=[1,2,3,4,5]索引值可為負(fù)>>>alist[1]2>>>alist[-1]5列表的操作創(chuàng)建列表和賦值>>>alist=[1,'22','hello',2.33]>>>alist[1,'22','hello',2.33]>>>blist=list(alist[2])>>>blist['h','e','l','l','o']>>>alist[2]=blist>>>alist#列表中的元素不需要同一類型[1,'22',['h','e','l','l','o'],2.33]

列表的操作列表的索引和切片>>>alist=['hello','world','!','I','am','coming']>>>alist[2]'!'>>>alist[-1]'coming'>>>alist[::-2]['coming','I','world']>>>alist[2:5:2]['!','am']

列表的操作列表的更新>>>alist=['a','b','c','d','e','f','g']>>>alist[2]='H'#更改列表的元素>>>alist['a','b','H','d','e','f','g']>>>alist[1:4]=['3','4']>>>alist['a','3','4','e','f','g']>>>alist.append('hahaha')#在列表末尾追加元素>>>alist['a','3','4','e','f','g','hahaha']>>>alist.insert(1,'hhh')#在列表內(nèi)部插入元素>>>alist['a','hhh','3','4','e','f','g','hahaha']列表的操作列表的刪除>>>alist['hello','world','!','I','am','coming']>>>delalist[2]>>>alist['hello','world','I','am','coming']>>>alist.remove('am')>>>alist['hello','world','I','coming']>>>alist.pop()'coming'>>>alist['hello','world','I']>>>alist.pop(0)'hello'>>>alist['world','I']字符串內(nèi)建函數(shù)(常用)【例5-4】創(chuàng)建一個(gè)列表,元素是100以內(nèi)的自然數(shù)。然后刪除該列表中的后50個(gè)元素。【參考代碼】L=[]forxinrange(1,101):L.append(x)print(L)foryinrange(50):L.pop()#刪除末尾元素或L.pop(50)print(L)字符串內(nèi)建函數(shù)(常用)【例5-5】列表wordlist中的元素是單詞本中的元素,從該列表中隨機(jī)選出某一元素,詢問(wèn)用戶:認(rèn)識(shí)該單詞嗎?如果認(rèn)識(shí),從鍵盤輸入“Y”,否則輸入“N”。當(dāng)用戶輸入Y時(shí),從列表中刪除該元素,否則什么也不做。循環(huán)操作5此后結(jié)束單詞本的更新,提示:今日更新完畢?!緟⒖即a】wordlist=['unanimous','declaration','thirteen','united','states','america','when','course','human','events','becomes','necessary','people','dissolve','political','bonds']importrandomforxinrange(5):word=random.choice(wordlist)print(word)answer=input('認(rèn)識(shí)該單詞嗎?如果認(rèn)識(shí),從鍵盤輸入“Y”,否則輸入“N”')ifanswer=='Y':wordlist.remove(word)else:continueprint('今日更新完畢。')列表的常用內(nèi)建函數(shù)list.extend(seq)extend()方法在列表末尾一次性追加另一個(gè)序列中的多個(gè)值,也就是將seq中的元素一個(gè)一個(gè)加入列表的末尾,而不是像append()方法一樣將整一個(gè)序列當(dāng)成一個(gè)元素加在列表末尾。extend的作用和連接(+)類似,但效率較高>>>alist=[1,2,3]>>>blist=[4,5,6]>>>alist.extend(blist)>>>alist[1,2,3,4,5,6]>>>alist[3:]=[]>>>alist.append(blist)>>>alist[1,2,3,[4,5,6]]列表的常用內(nèi)建函數(shù)list.sort()和list.reverse()排序和翻轉(zhuǎn)。sorted()和reversed()是接收一個(gè)序列,即以一個(gè)序列作為參數(shù),返回排好序和翻轉(zhuǎn)后的新序列,對(duì)原序列不產(chǎn)生影響,而sort()和reverse()方法是直接作用在原有列表上,不會(huì)產(chǎn)生新的列表>>>alist=[1,4,6,3,5,9,8]>>>sorted(alist)[1,3,4,5,6,8,9]>>>alist[1,4,6,3,5,9,8]>>>alist.sort()>>>alist[1,3,4,5,6,8,9]列表的常用內(nèi)建函數(shù)list.copy()copy()方法返回一個(gè)列表的副本,用于復(fù)制列表。不同于直接復(fù)制是讓兩個(gè)變量指向同一塊內(nèi)存空間,copy()方法是新開辟了一塊內(nèi)存空間,兩者只是值相同的兩個(gè)不同列表。>>>alist=[1,2,3,4]>>>blist=alist>>>alist,blist([1,2,3,4],[1,2,3,4])>>>alist[1]='a'>>>alist,blist([1,'a',3,4],[1,'a',3,4])>>>blist=alist.copy()>>>alist,blist([1,'a',3,4],[1,'a',3,4])>>>alist[1]=2>>>alist,blist([1,2,3,4],[1,'a',3,4])列表的常用內(nèi)建函數(shù)list.clear()將列表清空,變?yōu)橐粋€(gè)空列表>>>alist=[1,2,3,4,5,6]>>>alist[1,2,3,4,5,6]>>>alist.clear()>>>alist[]字符串內(nèi)建函數(shù)(常用)【例5-6】合并兩個(gè)列表lst1=[32,42,12,5,14,4,1],lst2=[199,22,324,89,2],并且保持合并后的列表有序(從小到大)【參考代碼】lst1=[32,42,12,5,14,4,1]lst2=[199,22,324,89,2]lst3=[]#先分別給兩個(gè)列表排序lst1.sort()lst2.sort()i=0j=0len1=len(lst1)len2=len(lst2)#將排好序的兩個(gè)列表中未插入新列表的最小項(xiàng)相互比較,小的插入新的列表中#直至一個(gè)列表的所有元素都插入新列表中whilei<len1andj<len

溫馨提示

  • 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)論