python的陣列模組——array
阿新 • • 發佈:2021-11-13
array概述
雖然python列表既靈活又簡單,但是面對各類需求時,我們可能有更好的選擇。比如,要存放1000萬個浮點數的話,陣列(array)的效率要高得多,因為陣列在背後存的並不是float物件,而是數字的機器翻譯,也就是位元組表述。如果我們需要一個只包含數字的列表,那麼array.array比list更高效。陣列支援所有跟可變序列有關的操作,包括.pop、.insert、和.extend。另外,陣列還提供從檔案讀取和存入檔案的方法,如.frombytes和.tofile。
array的建立方式
arr_name = array.array(typecode[, initializer])
在建立python array時,需要指定一個型別碼,這個型別碼用來表示底層的C語言應該存放怎樣的資料型別。比如b型別表示有符號的字元(signed char),因此array('b')創建出的陣列就只能存放一個位元組大小的整數,範圍從-128到127。
操作演示
建立array
from array import array
arr = array('i', [10, 20, 30, 40, 50])
for x in arr:
print(x)
輸出:
10
20
30
40
50
上面程式碼建立了一個大小為2個位元組的帶符號整數陣列,並將其輸出。
其他型別碼
Type code | C Type | Python Type | Minimum size in bytes |
---|---|---|---|
'b' | signed char | int | 1 |
'B' | unsigned char | int | 1 |
'h' | signed short | int | 2 |
'H' | unsigned short | int | 2 |
'i' | signed int | int | 2 |
'I' | unsigned int | int | 2 |
'l'(lower L) | signed long | int | 4 |
'L' | unsigned long | int | 4 |
'q' | signed long long | int | 8 |
'Q' | unsigned long long | int | 8 |
'f' | float | float | 4 |
'd' | double | float | 8 |
訪問陣列
from array import array arr = array('i', [10, 20, 30, 40, 50]) print(arr[0]) print(arr[1]) 輸出: 10 20
插入操作
from array import array
arr = array('i', [10, 20, 30, 40, 50])
arr.insert(1, 60)
for x in arr:
print(x)
輸出:
10
60
20
30
40
50
刪除元素
from array import array
arr = array('i', [10, 20, 30, 40, 50])
arr.remove(40)
for x in arr:
print(x)
輸出:
10
20
30
50
查詢元素的索引
from array import array
arr = array('i', [10, 20, 30, 40, 50])
print(arr.index(40))
輸出:
3
參考
- 《流暢的Python》,Luciano Ramalho著,安道 吳珂譯
- Python教程:陣列(Array)概念-菜鳥學苑