Python數(shù)組與列表的區(qū)別解析
Python數(shù)組和列表的區(qū)別
前言
對于學習Python的同志,想要深度的去研究這個語言,我們首先就需要去了解一下數(shù)組和列表的區(qū)別
ndarray數(shù)組or列表?
1.創(chuàng)建方式不同
list是Python中基礎的數(shù)據(jù)類型,不用引入任何庫包,直接使用[ ]創(chuàng)建即可(例如:a=[‘CSDN’,‘123’]);ndarray是NumPy函數(shù)庫中的函數(shù),在使用array時需要引入NumPy數(shù)據(jù)庫:
import numpy as np # 用普通的英語理解這句語法,導入numpy庫當作np,即起小名字,別號 j=np.array([1,2,3,4])
2.存儲對象不同
列表可以存儲任何的對象,包括數(shù)字,字符串,數(shù)組,字典等等;而數(shù)組只能存儲單一的數(shù)據(jù)類型(當然混雜起來存儲也不是不行,需要修改數(shù)據(jù)類型為object,但是這已經違背了產生這個函數(shù)庫的初衷),存儲類型的不同,也決定了我們應該在什么時候用到ndarray數(shù)組亦或是列表;
實例1:
import numpy as np g=np.array(['歡迎!','這里是CSDN',123]) print(g) print(type(g[2]))
這一段代碼看似已經不符合array數(shù)組只能存儲單一數(shù)據(jù)的性質,因為123是整型數(shù)據(jù),而前面兩個元素都是字符串,其實不然,123的數(shù)據(jù)類型已經被它偷偷的轉換了
代碼運行結果如下
可以看到123的數(shù)據(jù)類型已經被轉換成字符串的類型
3.運算方式不同
數(shù)組可以進行四則運算,它會對數(shù)組中的每一個元素對應進行運算;而列表只能使用加號進行拼接,拼接之后會形成一個新的列表:
實例2
g=['歡迎','來到'] l=['CSDN','!'] print(g+l)
運行結果如下:
4.運行效率不同
array數(shù)組是為了精確便捷的處理龐大的類似的數(shù)據(jù)而產生的,他的存儲效率要比列表快著很多
實例3:
import numpy as np import datetime #datetime.datetime.now()是為了獲取當前時間 start1=datetime.datetime.now() g=[] #創(chuàng)建一個空列表 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ù)字依次復制到j數(shù)組 end2=datetime.datetime.now() print('list存儲時間:',end1-start1) print('數(shù)組存儲時間:',end2-start2)
代碼運行結果如下:
一般array存儲數(shù)據(jù)的速度比列表存儲數(shù)據(jù)的速度快,這一點尤其體現(xiàn)在多而重復的數(shù)據(jù)處理上,大家可以去Python中嘗試一下
總結:數(shù)組和列表的運用
1.列表因為其存儲的類型可以是任何對象,因此列表的用處更廣泛,更多樣化,并且列表可以有更多的存儲空間去使用,而數(shù)組使用的空間就相對較少
2.列表多樣化也不一定是好處,因為列表存儲的方式和存儲類型雜亂,導致在處理一些龐大重復的數(shù)據(jù)時占據(jù)的資源太多
3.ndarray數(shù)組和列表處理數(shù)據(jù)的時間對于我們來說只是一眨眼的事情,但是對于計算機來說卻不可忽略,尤其在進行大量數(shù)據(jù)處理時,數(shù)組和列表處理數(shù)據(jù)的時間差別會更明顯
4.在計算機編程中,我們一般要求代碼簡潔,快速,并且占用的運行資源少,因此就誕生了NumPy函數(shù)庫,用于更加精確便捷的科學計算
到此這篇關于Python數(shù)組與列表的區(qū)別的文章就介紹到這了,更多相關Python數(shù)組與列表區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!