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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

str="python"

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

str="python"

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

例如:

a=[1,2,3]

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

foriinzip(a,b):

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

print(i)運行結果為:(1,'u')(2,'v')(3,'w')(None,'x')(None,'y')(None,'z')序列拷貝淺拷貝:將一個序列中的所有元素復制給另一個序列。復制的數會隨著被復制數的嵌套序列的元素的改變而改變。格式:(數據).copy()深拷貝:將一個序列中的所有元素復制給另一個序列。復制的數不會隨著被復制數的嵌套序列的元素的改變而改變。格式:copy.deepcopy(數據)序列拷貝例一:復制序列a=list(range(5))b=a.copy()print(a,b)運行結果為:[0,1,2,3,4][0,1,2,3,4]例二:更改被復制的序列a=list(range(5))b=a.copy()a[0]=5print(a,b)運行結果為:[5,1,2,3,4][0,1,2,3,4]序列拷貝例三:更改被復制的序列中的嵌套序列a=['a',list(range(5))]b=a.copy()print(a,b)a[1][0]=5print(a,b)運行結果為:['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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論