Python array模塊

array模塊用於支持python的數組操作,是C中數組的一層包裝,一般不直接在python代碼中使用,常用於和C代碼集成時,常使用numpy操作數組。不同於列表可以持有任意類型對象,數組只支持同類型的元素。數組對象的常用方法(增刪改查),大多和list有相同的方法簽名。

創建數組

創建數組使用array.array(typecode[, initializer])構造方法,其中typecode指定待創建數組的元素類型,詳情參照array。初始化器(initializer),可用於指定數組的初始化元素,支持列表,類字節對象以及合適的可迭代對象。

import array
import random

random.seed(0)
# 創建一個包含10個元素(-100~100)之間的有符號整型數組
arr = array.array('i', (random.randint(-100, 100) for _ in range(10)))

增刪改查

# 增加數組元素(需爲數組同類型元素)的方法有append(x),insert(i, x)及extend(iterable)
arr.append(123)
arr.insert(0, -123)
arr.extend(random.randint(60, 100) for _ in range(5))

# 刪除數組元素有按索引刪除pop([i])和按值刪除remove(x)
val = arr.pop(0)
arr.remove(123)  # 待刪除值不存在數組時,觸發ValueError

# 修改數組元素即爲對指定索引位元素重新賦值
arr[0] = 0

# 查看指定元素在數組的位置,可以使用index(x),查看在數組中的個數,使用count(x)
num = 0
num_pos = arr.index(num)  # num不存在數組中時,觸發ValueError
num_occ = arr.count(num)

其他方法

  • buffer_info():返回數組在內存中的地址及數組長度,返回結果爲(address, length)
  • byteswap():字節序交換(大小端轉換);
  • frombytes(s):從字節序列擴展數組;
  • fromfile(f, n):從類文件對象中讀取前n個元素擴展數組;
  • fromlist(list):從列表中擴展數組;
  • fromstring():同frombytes(s);
  • fromunicode(s):對於unicode類型數組,從unicode字符串擴展數組;
  • reverse():數組反轉;
  • tobytes():轉換成字節序列;
  • tofile(f):存儲數組至文件;
  • tolist():數組轉換爲列表;
  • tostring():同tobytes()
  • tounicode():對於unicode類型數組,轉換成unicode字符串。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章