背景
對於動態數組諸如創建、插入、刪除、查詢大小等操作,在C/C++語言中,可以使用標準庫中的vector類實現,而在python語言中,也同樣提供了內置的array模塊實現類似的功能。
Python中的array類似於列表list,如都可以動態增刪元素,但又有所區別,list中存儲的元素類型可以不一樣,但array中元素類型必須完全一樣。另外,由於list中每個元素同時存儲了其地址即指針(用以標記每個元素的數據類型)和實際的數據,所以,在存儲及操作效率上,array又遠遠高於列表。
下面通過例子講解array模塊的常用操作。
動態數組的創建
創建方式為:array.array(typecode[, initializer]),第1個參數typecode定義了數組元素的類型,第2個可選參數給出了數組中的初始值。如下面的代碼創建了一個int型的包含3個元素的數組x,其初始值為分別為1、2、3。其索引方式同列表類似,下標從0開始,如x[1]代表取數組x中的第2個元素。
import array
x = array.array(『i, [1, 2, 3]
在數組的定義中,數組元素的類型通過一個字符typecode參數指定,它的取值情況如下表所示:
動態數組的常用操作
1、數組元素的增加
x.append(2)
x.extend([5, 1]
x.insert(3, 9)
其中,append在數組的末尾增加一個元素,extend在數組的末尾增加多個元素,insert(i, x)在指定位置i處增加一個元素。
2、數組元素的刪除
x.pop()
x.pop(1)
x.remove(3)
其中,pop(i)刪除第i個元素,當參數為空時,刪除最後一個元素。remove(x),刪除第一個出現的x值。
3、數組的其它操作
x.typecode #返回當前數組的元素類型
x.itemsize #返回當前數組中每個元素的字節大小
x.buffer_info() #返回包含2個元素的一個元組,第1個是數組的內存地址,第2個是數組中元素的個數
x.count(3) #統計數組中3出現的次數
x.index(3) #返回數組中3第一次出現的位置
x.byteswap() #對數組中的每個元素進行字節高、低位交換
x.reverse() #對數組中的元素逆序排列
備註
數組array模塊的操作函數同列表list類似,但是其運行及存儲效率要遠遠高於列表list,這在動態數據的採集場合是用的比較多的。這兒只給出了該模塊的一些常用操作,還有其它的一些函數,大家可以自行查看幫助,比較簡單。本文的完整例子代碼如下:
運行結果如下圖所示:
歡迎加關注,共同交流。