Python數(shù)組與列表的區(qū)別解析
Python數(shù)組和列表的區(qū)別
前言
對于學(xué)習(xí)Python的同志,想要深度的去研究這個(gè)語言,我們首先就需要去了解一下數(shù)組和列表的區(qū)別
ndarray數(shù)組or列表?
1.創(chuàng)建方式不同
list是Python中基礎(chǔ)的數(shù)據(jù)類型,不用引入任何庫包,直接使用[ ]創(chuàng)建即可(例如:a=[‘CSDN’,‘123’]);ndarray是NumPy函數(shù)庫中的函數(shù),在使用array時(shí)需要引入NumPy數(shù)據(jù)庫:
import numpy as np # 用普通的英語理解這句語法,導(dǎo)入numpy庫當(dāng)作np,即起小名字,別號 j=np.array([1,2,3,4])
2.存儲對象不同
列表可以存儲任何的對象,包括數(shù)字,字符串,數(shù)組,字典等等;而數(shù)組只能存儲單一的數(shù)據(jù)類型(當(dāng)然混雜起來存儲也不是不行,需要修改數(shù)據(jù)類型為object,但是這已經(jīng)違背了產(chǎn)生這個(gè)函數(shù)庫的初衷),存儲類型的不同,也決定了我們應(yīng)該在什么時(shí)候用到ndarray數(shù)組亦或是列表;
實(shí)例1:
import numpy as np g=np.array(['歡迎!','這里是CSDN',123]) print(g) print(type(g[2]))
這一段代碼看似已經(jīng)不符合array數(shù)組只能存儲單一數(shù)據(jù)的性質(zhì),因?yàn)?23是整型數(shù)據(jù),而前面兩個(gè)元素都是字符串,其實(shí)不然,123的數(shù)據(jù)類型已經(jīng)被它偷偷的轉(zhuǎn)換了
代碼運(yùn)行結(jié)果如下
可以看到123的數(shù)據(jù)類型已經(jīng)被轉(zhuǎn)換成字符串的類型
3.運(yùn)算方式不同
數(shù)組可以進(jìn)行四則運(yùn)算,它會(huì)對數(shù)組中的每一個(gè)元素對應(yīng)進(jìn)行運(yùn)算;而列表只能使用加號進(jìn)行拼接,拼接之后會(huì)形成一個(gè)新的列表:
實(shí)例2
g=['歡迎','來到'] l=['CSDN','!'] print(g+l)
運(yùn)行結(jié)果如下:
4.運(yùn)行效率不同
array數(shù)組是為了精確便捷的處理龐大的類似的數(shù)據(jù)而產(chǎn)生的,他的存儲效率要比列表快著很多
實(shí)例3:
import numpy as np import datetime #datetime.datetime.now()是為了獲取當(dāng)前時(shí)間 start1=datetime.datetime.now() g=[] #創(chuàng)建一個(gè)空列表 for i in range(1,100000): #循環(huán)將1至1000000的數(shù)字添入列表中 g.append(i) end1=datetime.datetime.now() start2=datetime.datetime.now() l=np.array(g) #將z列表的數(shù)字依次復(fù)制到j(luò)數(shù)組 end2=datetime.datetime.now() print('list存儲時(shí)間:',end1-start1) print('數(shù)組存儲時(shí)間:',end2-start2)
代碼運(yùn)行結(jié)果如下:
一般array存儲數(shù)據(jù)的速度比列表存儲數(shù)據(jù)的速度快,這一點(diǎn)尤其體現(xiàn)在多而重復(fù)的數(shù)據(jù)處理上,大家可以去Python中嘗試一下
總結(jié):數(shù)組和列表的運(yùn)用
1.列表因?yàn)槠浯鎯Φ念愋涂梢允侨魏螌ο螅虼肆斜淼挠锰幐鼜V泛,更多樣化,并且列表可以有更多的存儲空間去使用,而數(shù)組使用的空間就相對較少
2.列表多樣化也不一定是好處,因?yàn)榱斜泶鎯Φ姆绞胶痛鎯︻愋碗s亂,導(dǎo)致在處理一些龐大重復(fù)的數(shù)據(jù)時(shí)占據(jù)的資源太多
3.ndarray數(shù)組和列表處理數(shù)據(jù)的時(shí)間對于我們來說只是一眨眼的事情,但是對于計(jì)算機(jī)來說卻不可忽略,尤其在進(jìn)行大量數(shù)據(jù)處理時(shí),數(shù)組和列表處理數(shù)據(jù)的時(shí)間差別會(huì)更明顯
4.在計(jì)算機(jī)編程中,我們一般要求代碼簡潔,快速,并且占用的運(yùn)行資源少,因此就誕生了NumPy函數(shù)庫,用于更加精確便捷的科學(xué)計(jì)算
到此這篇關(guān)于Python數(shù)組與列表的區(qū)別的文章就介紹到這了,更多相關(guān)Python數(shù)組與列表區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例
今天小編就為大家分享一篇python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python如何實(shí)現(xiàn)對.xls文件表頭的修改
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)對.xls文件表頭的修改功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-03-03python中使用urllib2偽造HTTP報(bào)頭的2個(gè)方法
這篇文章主要介紹了python中使用urllib2偽造HTTP報(bào)頭的2個(gè)方法,即偽造http頭信息,需要的朋友可以參考下2014-07-07python實(shí)現(xiàn)宿舍管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)宿舍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11