1. 程式人生 > 其它 >python的陣列模組——array

python的陣列模組——array

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

參考