《第08課 序列操作》課件_第1頁
《第08課 序列操作》課件_第2頁
《第08課 序列操作》課件_第3頁
《第08課 序列操作》課件_第4頁
《第08課 序列操作》課件_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

8序列操作序列簡(jiǎn)介所謂序列,指的是一塊可存放多個(gè)值的連續(xù)內(nèi)存空間,這些值按一定順序排列,可通過每個(gè)值所在位置的編號(hào)(稱為索引)訪問它們??梢詫⑿蛄锌醋鍪且患衣玫?,那么店中的每個(gè)房間就如同序列存儲(chǔ)數(shù)據(jù)的一個(gè)個(gè)內(nèi)存空間,每個(gè)房間所特有的房間號(hào)就相當(dāng)于索引值。也就是說,通過房間號(hào)(索引)我們可以找到這家旅店(序列)中的每個(gè)房間(內(nèi)存空間)。序列簡(jiǎn)介序列的特點(diǎn):序列中每個(gè)組成部分稱為“元素”。序列是程序設(shè)計(jì)中經(jīng)常用到的數(shù)據(jù)存儲(chǔ)方式,幾乎每一種程序設(shè)計(jì)語言都提供了表格數(shù)據(jù)結(jié)構(gòu)。Python提供的序列類型在所有程序設(shè)計(jì)語言中是最豐富、最靈活,也是功能最強(qiáng)大的。序列簡(jiǎn)介序列類型字典字符串元組列表序列索引序列中,每個(gè)元素都有屬于自己的編號(hào)(索引)。從起始元素開始,索引值從0開始遞增,如下圖所示:元素1元素2元素3元素4元素…元素n0123…n-1索引(下標(biāo))序列索引此外Python還支持索引值是負(fù)數(shù),此類索引是從右向左計(jì)數(shù),即從最后一個(gè)元素開始計(jì)數(shù),從索引值-1開始,如下圖所示:

注意:在使用負(fù)值作為列序中各元素的索引值時(shí),是從-1開始,而不是從0開始。元素1元素2元素3元素…元素n-1元素n-(n-1)-(n-2)-(n-3)…-2-1索引(下標(biāo))序列切片切片操作是訪問序列中元素的另一種方法,它可以訪問一定范圍內(nèi)的元素,通過切片操作,可以生成一個(gè)新的序列。使用索引可以獲取單個(gè)元素,使用分片可以獲取序列中指定范圍內(nèi)的元素。切片操作符為[:]/[::]。序列切片的語法格式如下:sname[start:stop:step]序列切片序列切片的語法格式如下:sname[start:stop:step]sname:表示序列的名稱;start:表示切片的開始索引位置(包括該位置),如果不指定,默認(rèn)為0;stop:表示切片的結(jié)束索引位置(不包括該位置),如果不指定,則默認(rèn)為序列的長(zhǎng)度;step:表示在切片過程中,隔幾個(gè)存儲(chǔ)位置(包含當(dāng)前位置)取一次元素,也就是說,如果step的值大于1,則在進(jìn)行切片去序列元素時(shí),會(huì)“跳躍式”的取元素。如果省略設(shè)置step的值,則最后一個(gè)冒號(hào)就可以省略。序列切片注意:如果step>0,則表示從start索引對(duì)應(yīng)的元素開始,每step個(gè)元素取出來一個(gè),直到取到stop對(duì)應(yīng)的元素結(jié)束(step默認(rèn)為1),切片中冒號(hào)左邊索引對(duì)應(yīng)的元素晚于右邊索引對(duì)應(yīng)元素出現(xiàn)時(shí),返回結(jié)果是[]。如果step<0,則表示從右到左反向提取元素,即從start索引對(duì)應(yīng)的元素開始反向每step個(gè)元素取出來一個(gè),直到取到stop+1對(duì)應(yīng)的元素結(jié)束,此時(shí)切片中冒號(hào)左邊索引對(duì)應(yīng)的元素晚于右邊索引對(duì)應(yīng)元素出現(xiàn),否則返回[]。序列相加Python中,支持兩種類型相同的序列使用“+”運(yùn)算符做相加操作,它會(huì)將兩個(gè)序列進(jìn)行連接,但不會(huì)去除重復(fù)的元素。這里所說的“類型相同”,指的是“+”運(yùn)算符的兩側(cè)序列要么都是序列類型,要么都是元組類型,要么都是字符串。例如:

str="python"

print("編程語言:"+str)輸出結(jié)果為:"編程語言:python"序列相乘Python中,使用數(shù)字n乘以一個(gè)序列會(huì)生成新的序列,其內(nèi)容為原來序列被重復(fù)n次的結(jié)果。例如:

str="python"

print(str*3)輸出結(jié)果為:"pythonpythonpython"成員資格Python中可以使用in關(guān)鍵字檢查某元素是否為序列的成員。其語法格式為:valueinsequencevalue:表示要檢查的元素sequence:表示指定的序列。和in關(guān)鍵字用法相同,但功能恰好相反的,還有notin關(guān)鍵字,它用法檢查某個(gè)元素是否不包含在指定的序列中。內(nèi)建函數(shù)序列迭代要想同時(shí)迭代多個(gè)序列,每次分別從一個(gè)序列中取一個(gè)元素,可以使用zip()函數(shù)。例如:m=[1,5,4,2,10]n=[101,78,37,15,62,99]forx,yinzip(m,n):print(x,y)運(yùn)行結(jié)果為:11015784372151062zip(m,n)會(huì)生成一個(gè)可返回元組(x,y)的迭代器,其中x來自m,y來自n。一旦其中某個(gè)序列的元素迭代完,整個(gè)迭代宣告結(jié)束。因此迭代長(zhǎng)度跟參數(shù)中最短序列長(zhǎng)度一致。序列迭代

例如:

a=[1,2,3]

b=['u','v','w','x','y','z']

foriinzip(a,b):

print(i)運(yùn)行結(jié)果為:(1,'u')(2,'v')(3,'w')序列迭代如果想要迭代長(zhǎng)度跟參數(shù)中最長(zhǎng)序列長(zhǎng)度一致,那么可以使用itertools.zip_longest()函數(shù)來代替。例如:a=[1,2,3]b=['u','v','w','x','y','z']fromitertoolsimportzip_longestforiinzip_longest(a,b):

print(i)運(yùn)行結(jié)果為:(1,'u')(2,'v')(3,'w')(None,'x')(None,'y')(None,'z')序列拷貝淺拷貝:將一個(gè)序列中的所有元素復(fù)制給另一個(gè)序列。復(fù)制的數(shù)會(huì)隨著被復(fù)制數(shù)的嵌套序列的元素的改變而改變。格式:(數(shù)據(jù)).copy()深拷貝:將一個(gè)序列中的所有元素復(fù)制給另一個(gè)序列。復(fù)制的數(shù)不會(huì)隨著被復(fù)制數(shù)的嵌套序列的元素的改變而改變。格式:copy.deepcopy(數(shù)據(jù))序列拷貝例一:復(fù)制序列a=list(range(5))b=a.copy()print(a,b)運(yùn)行結(jié)果為:[0,1,2,3,4][0,1,2,3,4]例二:更改被復(fù)制的序列a=list(range(5))b=a.copy()a[0]=5print(a,b)運(yùn)行結(jié)果為:[5,1,2,3,4][0,1,2,3,4]序列拷貝例三:更改被復(fù)制的序列中的嵌套序列a=['a',list(range(5))]b=a.copy()print(a,b)a[1][0]=5print(a,b)運(yùn)行結(jié)果為:['a',[0,1,2,3,4]]['a',[0,1,2,3,4]]['a',[5,1,2,3,4]]['a',[5,1,2,3,4]]例四:深拷貝importcopya=['a',list(range(5))]b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論