計算機爲數組分配一段連續的內存,從而支持對數組隨機訪問;
因爲項的地址在編號上是連續的,數組某一項的地址能夠經過將兩個值相加得出,即將數組的基本地址和項的偏移地址相加。
數組的基本地址就是數組的第一項的機器地址。一個項的偏移地址就等於它的索引乘以數組的一個項所須要的內存單元數目的一個常量表示(在python中,這個值老是1)
import array #array模塊是python中實現的一種高效的數組存儲類型。它和list類似,可是全部的數組成員必須是同一種類型,在建立數組的時候,就肯定了數組的類型 #array.array(typecode,[initializer]) --typecode:元素類型代碼;initializer:初始化器,若數組爲空,則省略初始化器 arr = array.array('i',[0,1,1,3]) print(arr) #array.typecodes --模塊屬性 print('\n輸出一條 包含全部可用類型代碼的字符串:') print(array.typecodes) #注意調用者是模塊名,不是某個對象 #array.typecode -- 對象屬性 print('\n 輸出 用於建立數組的類型代碼字符:') print(arr.typecode) #array.itemsize --對象屬性 print('\n輸出 數組的元素個數:') print(arr.itemsize) #array.append(x) --對象方法 print('\n將一個新值附加到數組的末尾:') arr.append(4) print(arr) #array.buffer_info() -- 對象方法 print('\n獲取數組在存儲器中的地址、元素的個數,以元組形式(地址、長度)返回:') print(arr.buffer_info()) #array.count(x) -- 對象方法 print('\n獲取元素1在數組中出現的次數:') print(arr.count(1)) #array.extend(iterable) -- 對象方法:將可迭代對象的袁旭序列附加到數組的末尾,合併兩個序列 print('\n將可迭代對象的元素序列附加到數據的末尾,合併兩個序列:') #注意:附加元素數值類型必須與調用對象的元素的數值類型一致 _list = [5,6,7] arr.extend(_list) print(arr) #array.fromlist(list) --對象方法:將列表中的元素追加到數組後面,至關於for x in list:a.append(x) print('\n將列表中的元素追加到數組後面,至關於for x in list:a.append(x):') arr.fromlist(_list) print(arr) #array.index(x) --對象方法:返回數組中x的最小下標 print('\n返回數組中1的最小下標:') print(arr.index(1)) #array.insert(1) --對象方法:在下表i(負值表示倒數)以前插入值x print('\n在下表1(負值表示倒數)以前插入值0:') arr.insert(1,0) print(arr) #array.pop(i) --對象方法:刪除索引爲i的項,並返回它 print('\n刪除索引爲4的項,並返回它:') print(arr.pop(4)) print(arr) #array.remove(x) --對象方法:刪除第一次出現的元素x print('\n刪除第一次出現的元素5:') arr.remove(5) print(arr) #array.reverse() --對象方法:反轉數組中的元素值 print('\n將數組arr中元素的順序反轉:') arr.reverse() print(arr) #array.tolist():將數組轉換爲具備相同元素的列表(list) print('\n將數組arr轉換爲已給具備相同元素的列表:') li = arr.tolist() print(li)
輸出結果:python
D:\python\test0611\venv\Scripts\python.exe D:/python/test0611/test.py array('i', [0, 1, 1, 3]) 輸出一條 包含全部可用類型代碼的字符串: bBuhHiIlLqQfd 輸出 用於建立數組的類型代碼字符: i 輸出 數組的元素個數: 4 將一個新值附加到數組的末尾: array('i', [0, 1, 1, 3, 4]) 獲取數組在存儲器中的地址、元素的個數,以元組形式(地址、長度)返回: (2325235347184, 5) 獲取元素1在數組中出現的次數: 2 將可迭代對象的元素序列附加到數據的末尾,合併兩個序列: array('i', [0, 1, 1, 3, 4, 5, 6, 7]) 將列表中的元素追加到數組後面,至關於for x in list:a.append(x): array('i', [0, 1, 1, 3, 4, 5, 6, 7, 5, 6, 7]) 返回數組中1的最小下標: 1 在下表1(負值表示倒數)以前插入值0: array('i', [0, 0, 1, 1, 3, 4, 5, 6, 7, 5, 6, 7]) 刪除索引爲4的項,並返回它: 3 array('i', [0, 0, 1, 1, 4, 5, 6, 7, 5, 6, 7]) 刪除第一次出現的元素5: array('i', [0, 0, 1, 1, 4, 6, 7, 5, 6, 7]) 將數組arr中元素的順序反轉: array('i', [7, 6, 5, 7, 6, 4, 1, 1, 0, 0]) 將數組arr轉換爲已給具備相同元素的列表: [7, 6, 5, 7, 6, 4, 1, 1, 0, 0] Process finished with exit code 0
全部數值類型的字符代碼表:數組