Python 數(shù)組教程定義、索引、方法_第1頁(yè)
Python 數(shù)組教程定義、索引、方法_第2頁(yè)
Python 數(shù)組教程定義、索引、方法_第3頁(yè)
Python 數(shù)組教程定義、索引、方法_第4頁(yè)
Python 數(shù)組教程定義、索引、方法_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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數(shù)組? 1Python列表和Python數(shù)組有什么區(qū)別? 2何時(shí)使用Python數(shù)組 3如何在Python中使用數(shù)組 3如何在Python中定義數(shù)組 4如何在Python中查找數(shù)組的長(zhǎng)度 7數(shù)組索引以及如何在Python中訪問(wèn)數(shù)組中的單個(gè)項(xiàng)目 8如何在Python中搜索數(shù)組 9如何在Python中循環(huán)數(shù)組 10如何在Python中對(duì)數(shù)組進(jìn)行切片 12Python中對(duì)數(shù)組執(zhí)行操作的方法 13如何更改數(shù)組中項(xiàng)目的值 13如何向數(shù)組添加新值 14如何從數(shù)組中刪除值 16結(jié)論 17什么是Python數(shù)組?數(shù)組是一種基本數(shù)據(jù)結(jié)構(gòu),也是大多數(shù)編程語(yǔ)言的重要組成部分。在Python中,它們是能夠同時(shí)存儲(chǔ)多個(gè)項(xiàng)目的容器。具體來(lái)說(shuō),它們是元素的有序集合,每個(gè)值都具有相同的數(shù)據(jù)類(lèi)型。這是關(guān)于Python數(shù)組需要記住的最重要的事情-它們只能保存相同類(lèi)型的多個(gè)項(xiàng)目的序列。Python列表和Python數(shù)組有什么區(qū)別?列表是Python中最常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)之一,也是該語(yǔ)言的核心部分。列表和數(shù)組的行為類(lèi)似。就像數(shù)組一樣,列表是元素的有序序列。它們也是可變的并且大小不固定,這意味著它們可以在程序的整個(gè)生命周期中增長(zhǎng)和縮小??梢蕴砑雍蛣h除項(xiàng)目,使其使用起來(lái)非常靈活。然而,列表和數(shù)組不是一回事。列出各種數(shù)據(jù)類(lèi)型的存儲(chǔ)項(xiàng)目。這意味著列表可以同時(shí)包含整數(shù)、浮點(diǎn)數(shù)、字符串或任何其他Python數(shù)據(jù)類(lèi)型。數(shù)組的情況并非如此。如上一節(jié)所述,數(shù)組僅存儲(chǔ)具有相同單一數(shù)據(jù)類(lèi)型的項(xiàng)目。有些數(shù)組僅包含整數(shù),或僅包含浮點(diǎn)數(shù),或僅包含你要使用的任何其他Python數(shù)據(jù)類(lèi)型。何時(shí)使用Python數(shù)組列表內(nèi)置于Python編程語(yǔ)言中,而數(shù)組則不然。數(shù)組不是內(nèi)置數(shù)據(jù)結(jié)構(gòu),因此需要通過(guò)導(dǎo)入arraymodule才能使用。數(shù)組arraymodule是C數(shù)組的薄包裝,當(dāng)你想要處理同類(lèi)數(shù)據(jù)時(shí)非常有用。它們也更緊湊,占用的內(nèi)存和空間更少,這使得它們比列表更有效。如果你想進(jìn)行數(shù)學(xué)計(jì)算,那么你應(yīng)該通過(guò)導(dǎo)入NumPy包來(lái)使用NumPy數(shù)組。除此之外,你應(yīng)該在真正需要時(shí)才使用Python數(shù)組,因?yàn)榱斜淼墓ぷ鞣绞筋?lèi)似,并且使用起來(lái)更加靈活。如何在Python中使用數(shù)組為了創(chuàng)建Python數(shù)組,你首先必須導(dǎo)入arraymodule包含所有必需函數(shù)的數(shù)組。你可以通過(guò)三種方式導(dǎo)入arraymodule:importarray通過(guò)在文件頂部使用。這包括模塊array。然后,你將繼續(xù)使用創(chuàng)建一個(gè)數(shù)組array.array()。importarray#howyouwouldcreateanarrayarray.array()array.array()你可以importarrayasarr在文件頂部使用而不是單獨(dú)使用,而不必一直鍵入importarray。然后,你可以通過(guò)鍵入創(chuàng)建一個(gè)數(shù)組arr.array()。充當(dāng)arr別名,數(shù)組構(gòu)造函數(shù)緊隨其后。importarrayasarr#howyouwouldcreateanarrayarr.array()最后,你還可以使用fromarrayimport*,*導(dǎo)入所有可用的功能。然后,你可以通過(guò)單獨(dú)編寫(xiě)構(gòu)造函數(shù)來(lái)創(chuàng)建一個(gè)數(shù)組array()。fromarrayimport*#howyouwouldcreateanarrayarray()如何在Python中定義數(shù)組導(dǎo)入后arraymodule,你就可以繼續(xù)定義Python數(shù)組。創(chuàng)建數(shù)組的一般語(yǔ)法如下所示:variable_name=array(typecode,[elements])讓我們來(lái)分解一下:variable_name將是數(shù)組的名稱(chēng)。指定typecode數(shù)組中將存儲(chǔ)哪種類(lèi)型的元素。無(wú)論是整數(shù)數(shù)組、浮點(diǎn)數(shù)數(shù)組還是任何其他Python數(shù)據(jù)類(lèi)型的數(shù)組。請(qǐng)記住,所有元素應(yīng)該具有相同的數(shù)據(jù)類(lèi)型。在方括號(hào)內(nèi),你提到elements將存儲(chǔ)在數(shù)組中,每個(gè)元素用逗號(hào)分隔。你還可以通過(guò)僅單獨(dú)寫(xiě)入而不包含任何元素來(lái)創(chuàng)建空數(shù)組。variable_name=array(typecode)下面是一個(gè)類(lèi)型代碼表,其中包含定義Python數(shù)組時(shí)可與不同數(shù)據(jù)類(lèi)型一起使用的不同類(lèi)型代碼:類(lèi)型代碼C型PYTHON類(lèi)型尺寸'b'簽名字符整數(shù)1'B'無(wú)符號(hào)字符整數(shù)1'u'wchar_t統(tǒng)一碼字符2'H'簽名短整數(shù)2'H'無(wú)符號(hào)短整數(shù)2'l'有符號(hào)整數(shù)整數(shù)2'l'無(wú)符號(hào)整數(shù)整數(shù)2'l'長(zhǎng)簽整數(shù)4'L'無(wú)符號(hào)長(zhǎng)整數(shù)4'q'簽名長(zhǎng)長(zhǎng)整數(shù)8'Q'無(wú)符號(hào)長(zhǎng)長(zhǎng)整數(shù)8'F'漂浮漂浮4'd'雙倍的漂浮8將所有內(nèi)容結(jié)合在一起,下面是如何在Python中定義數(shù)組的示例:importarrayasarrnumbers=arr.array('i',[10,20,30])print(numbers)#output#array('i',[10,20,30])讓我們來(lái)分解一下:首先,我們包含了數(shù)組模塊,在本例中為importarrayasarr

.然后,我們創(chuàng)建了一個(gè)numbers數(shù)組。我們使用arr.array()是因?yàn)閕mportarrayasarr

.在array()構(gòu)造函數(shù)中,我們首先包含i,表示有符號(hào)整數(shù)。有符號(hào)整數(shù)意味著數(shù)組可以包含正值和負(fù)值。例如,無(wú)符號(hào)整數(shù)H意味著不允許負(fù)值。最后,我們將要存儲(chǔ)在數(shù)組中的值包含在方括號(hào)中。請(qǐng)記住,如果你嘗試包含非i類(lèi)型代碼的值(這意味著它們不是整數(shù)值),你將收到錯(cuò)誤消息:importarrayasarrnumbers=arr.array('i',[10.0,20,30])print(numbers)#output#Traceback(mostrecentcalllast):#File"/Users/dionysialemonaki/python_articles/demo.py",line14,in<module>#numbers=arr.array('i',[10.0,20,30])#TypeError:'float'objectcannotbeinterpretedasaninteger在上面的示例中,我嘗試在數(shù)組中包含浮點(diǎn)數(shù)。我收到錯(cuò)誤,因?yàn)檫@只是一個(gè)整數(shù)數(shù)組。創(chuàng)建數(shù)組的另一種方法如下:fromarrayimport*#anarrayoffloatingpointvaluesnumbers=array('d',[10.0,20.0,30.0])print(numbers)#output#array('d',[10.0,20.0,30.0])上面的示例導(dǎo)入了arraymoduleviafromarrayimport*并創(chuàng)建了一個(gè)float數(shù)據(jù)類(lèi)型的數(shù)組numbers。這意味著它僅包含由類(lèi)型代碼指定的浮點(diǎn)數(shù)'d'。如何在Python中查找數(shù)組的長(zhǎng)度要找出數(shù)組中包含的確切元素?cái)?shù),請(qǐng)使用內(nèi)置len()方法。它將返回等于你指定的數(shù)組中元素總數(shù)的整數(shù)。importarrayasarrnumbers=arr.array('i',[10,20,30])print(len(numbers))#output#3在上面的例子中,數(shù)組包含三個(gè)元素-10,20,30所以的長(zhǎng)度numbers是3。數(shù)組索引以及如何在Python中訪問(wèn)數(shù)組中的單個(gè)項(xiàng)目數(shù)組中的每個(gè)項(xiàng)目都有一個(gè)特定的地址。通過(guò)引用其索引號(hào)來(lái)訪問(wèn)各個(gè)項(xiàng)目。Python以及所有編程語(yǔ)言和一般計(jì)算中的索引從開(kāi)始0。重要的是要記住,計(jì)數(shù)是從開(kāi)始的0,而不是從開(kāi)始的1。要訪問(wèn)元素,首先編寫(xiě)數(shù)組名稱(chēng),后跟方括號(hào)。在方括號(hào)內(nèi)包含該項(xiàng)目的索引號(hào)。一般語(yǔ)法看起來(lái)像這樣:array_name[index_value_of_item]以下是訪問(wèn)數(shù)組中每個(gè)單獨(dú)元素的方法:importarrayasarrnumbers=arr.array('i',[10,20,30])print(numbers[0])#getsthe1stelementprint(numbers[1])#getsthe2ndelementprint(numbers[2])#getsthe3rdelement#output#10#20#30請(qǐng)記住,數(shù)組最后一個(gè)元素的索引值始終比數(shù)組長(zhǎng)度小一。其中n是數(shù)組的長(zhǎng)度,n-1將是最后一項(xiàng)的索引值。請(qǐng)注意,你還可以使用負(fù)索引訪問(wèn)每個(gè)單獨(dú)的元素。使用負(fù)索引時(shí),最后一個(gè)元素的索引為-1,倒數(shù)第二個(gè)元素的索引為-2,依此類(lèi)推。以下是使用該方法獲取數(shù)組中每個(gè)項(xiàng)目的方法:importarrayasarrnumbers=arr.array('i',[10,20,30])print(numbers[-1])#getslastitemprint(numbers[-2])#getssecondtolastitemprint(numbers[-3])#getsfirstitem#output#30#20#10如何在Python中搜索數(shù)組你可以使用該方法找出元素的索引號(hào)index()。將要搜索的元素的值作為參數(shù)傳遞給該方法,并返回該元素的索引號(hào)。importarrayasarrnumbers=arr.array('i',[10,20,30])#searchfortheindexofthevalue10print(numbers.index(10))#output#0如果有多個(gè)元素具有相同的值,則將返回該值的第一個(gè)實(shí)例的索引:importarrayasarrnumbers=arr.array('i',[10,20,30,10,20,30])#searchfortheindexofthevalue10#willreturntheindexnumberofthefirstinstanceofthevalue10print(numbers.index(10))#output#0如何在Python中循環(huán)數(shù)組你已經(jīng)了解了如何訪問(wèn)數(shù)組中的每個(gè)單獨(dú)元素并將其單獨(dú)打印出來(lái)。你還了解了如何使用該方法打印數(shù)組print()。該方法給出以下結(jié)果:importarrayasarrnumbers=arr.array('i',[10,20,30])print(numbers)#output#array('i',[10,20,30])如果你想一一打印每個(gè)值怎么辦?這就是循環(huán)派上用場(chǎng)的地方。你可以循環(huán)遍歷數(shù)組并在每次循環(huán)迭代時(shí)一一打印出每個(gè)值。為此,你可以使用一個(gè)簡(jiǎn)單的for循環(huán):importarrayasarrnumbers=arr.array('i',[10,20,30])fornumberinnumbers:print(number)#output#10#20#30你還可以使用該range()函數(shù),并將該len()方法作為其參數(shù)傳遞。這將產(chǎn)生與上面相同的結(jié)果:importarrayasarrvalues=arr.array('i',[10,20,30])#printseachindividualvalueinthearrayforvalueinrange(len(values)):print(values[value])#output#10#20#30如何在Python中對(duì)數(shù)組進(jìn)行切片要訪問(wèn)數(shù)組內(nèi)特定范圍的值,請(qǐng)使用切片運(yùn)算符,它是一個(gè)冒號(hào):。0當(dāng)使用切片運(yùn)算符并且僅包含一個(gè)值時(shí),默認(rèn)從開(kāi)始計(jì)數(shù)。它獲取第一項(xiàng),并上升到但不包括你指定的索引號(hào)。importarrayasarr#originalarraynumbers=arr.array('i',[10,20,30])#getthevalues10and20onlyprint(numbers[:2])#firsttosecondposition#output#array('i',[10,20])當(dāng)你傳遞兩個(gè)數(shù)字作為參數(shù)時(shí),你指定了一個(gè)數(shù)字范圍。在這種情況下,計(jì)數(shù)從范圍中第一個(gè)數(shù)字的位置開(kāi)始,直到但不包括第二個(gè)數(shù)字:importarrayasarr#originalarraynumbers=arr.array('i',[10,20,30])#getthevalues20and30onlyprint(numbers[1:3])#secondtothirdposition#output#array('i',[20,30])Python中對(duì)數(shù)組執(zhí)行操作的方法數(shù)組是可變的,這意味著它們是可變的。你可以更改不同項(xiàng)目的值、添加新項(xiàng)目或刪除程序中不再需要的任何項(xiàng)目。讓我們看看一些最常用的用于對(duì)數(shù)組執(zhí)行操作的方法。如何更改數(shù)組中項(xiàng)目的值你可以通過(guò)指定特定元素的位置并為其分配新值來(lái)更改其值:importarrayasarr#originalarraynumbers=arr.array('i',[10,20,30])#changethefirstelement#changeitfromhavingavalueof10tohavingavalueof40numbers[0]=40print(numbers)#output#array('i',[40,20,30])如何向數(shù)組添加新值要在數(shù)組末尾添加一個(gè)值,請(qǐng)使用以下append()方法:importarrayasarr#originalarraynumbers=arr.array('i',[10,20,30])#addtheinteger40totheendofnumbersnumbers.append(40)print(numbers)#output#array('i',[10,20,30,40])請(qǐng)注意,你添加的新項(xiàng)目需要與數(shù)組中的其余項(xiàng)目具有相同的數(shù)據(jù)類(lèi)型??纯串?dāng)我嘗試將浮點(diǎn)數(shù)添加到整數(shù)數(shù)組時(shí)會(huì)發(fā)生什么:importarrayasarr#originalarraynumbers=arr.array('i',[10,20,30])#addthefloat40.0totheendofnumbersnumbers.append(40.0)print(numbers)#output#Traceback(mostrecentcalllast):#File"/Users/dionysialemonaki/python_articles/demo.py",line19,in<module>#numbers.append(40.0)#TypeError:'float'objectcannotbeinterpretedasaninteger但是,如果你想向數(shù)組末尾添加多個(gè)值怎么辦?使用該extend()方法,該方法采用可迭代對(duì)象(例如項(xiàng)目列表)作為參數(shù)。再次確保新項(xiàng)目都是相同的數(shù)據(jù)類(lèi)型。importarrayasarr#originalarraynumbers=arr.array('i',[10,20,30])#addtheintegers40,50,60totheendofnumbers#Thenumbersneedtobeenclosedinsquarebracketsnumbers.extend([40,50,60])print(numbers)#output#array('i',[10,20,30,40,50,60])如果你不想將項(xiàng)目添加到數(shù)組末尾怎么辦?使用該insert()方法,在特定位置添加項(xiàng)目。該insert()函數(shù)有兩個(gè)參數(shù):新元素將插入的位置的索引號(hào)和新元

溫馨提示

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