初始化
arwww.cppcns.comray例項化可以提供乙個引數來描述允許那種資料型別,還可以有乙個初始的資料序列儲存在陣列中。
import array
import 程式設計客棧binascii
s = 'this is the array.'
a = array.array('c', s)
print 'as string:', s
print 'as array :', a
print 'as hex :', binascii.hexlify(a)
陣列配置為包含乙個位元組序列,用乙個簡單的字串初始化。
>>> ******************************== restart ******************************==
>>>
as string: this is the array.
as array : array('c', 'this is the array.')
as hex : 54686973206973207468652061727261792e
處理陣列
類似於其他python序列,可以採用同樣方式擴充套件和處理array。
import array
import pprint
a = array.array('i', xrange(3))
print 'initial :', a
a.extend(xrange(3))
print 'extended:', a
print 'slice: :', a[2:5]
print 'itetator:'
print list(enumerate(a))
支援的操作包括分片,迭代以及向末尾增加元素。
>>> ******************************== restart ******************************==
>>>
initial : array('i', [0, 1, 2])
extended: array('i', [0, 1, 2, 0, 1, 2])
slice: : array('i', [2, 0, 1])
itetator:
[(0, 0), (1, 1), (2, 2), (3, 0), (4, 1), (5, 2)]
陣列和檔案
可以使用高效讀/寫檔案的專用內建方法將陣列的內容寫入檔案或從檔案讀取陣列。
import array
import binascii
import tempfile
a = array.array('i', xrange(5))
print 'a1: ',a
output = tempfile.namedtemporaryfile()
a.tofile(output.file)
output.flush
with open(output.name, 'rb') as input:
raw_input = input.read()
print 'raw contents:', binascii.hexlify(raw_data)
input.seek(0)
a2 = array.array('i')
a2.fromfile(input, len(a))
print 'a2: ', a2
候選位元組順序
如果陣列中的資料沒有採用固有的位元組順序,或者在傳送到乙個採用不同位元組順序的系統前需要交換順序,可以在python轉換整個陣列而無須迭代處理每個元素。
import array
import binascii
def to_hex(a):
chars_per_it程式設計客棧em = a.item程式設計客棧size * 2
hex_version = binascii.hexlify(a)
num_chunks = len(hex_version) / chars_per_item
for i in xrange(num_chunks):
start = i * chars_per_item
end = start + chars_per_item
yield hex_version[start:end]
a1 = array.array('i', xrange(5))
a2 = array.array('i', xrange(5))
a2.byteswap()
fmt = '%10s %10s %10s %10s'
print fmt % ('a1_hex', 'a1', 'a2_hex', 'a2')
print fmt % (('-' * 10,) * 4)
for value in zip(to_hex(a1), a1, to_hex(a2), a2):
print fmt % value
byteswap()會交換c陣列中元素的位元組順序,比在python中迴圈處理資料高效的多。
>>> ******************************== restart ******************************==
>>>
a1_hex a1 a2_hex a2
---------- ----------程式設計客棧 ---------- ----------
00000000 0 00000000 0
01000000 1 00000001 16777216
02000000 2 00000002 33554432
03000000 3 00000003 50331648
04000000 4 00000004 67108864
本文位址:
Python中list轉換array的乙個問題
詳細版本見個人部落格 python中list轉換array的乙個問題 我在資料分析過程中需要將list轉換為array,但是轉換的過程出了一點問題,下面是記錄。下面的a是乙個list型別,如果要進行numpy的一些數值運算,我們就需要將它轉換為array型別。import numpy as np a...
python中list和array的區別
numpy.array可以專門表示二維或多維資料 b np.array a b array 1,2,3 4,5,6 7,8,9 總結兩點不同的地方 1.元素型別 list是python的基本資料型別,它的元素型別可以不同。如 1,2,a 3,4 array是numpy的一種資料型別,所包含的元素型別...
詳解 python 詳解python中 的用法
python中 的用法 是乙個裝飾器,針對函式,起呼叫傳參的作用。有修飾和被修飾的區別,function作為乙個裝飾器,用來修飾緊跟著的函式 可以是另乙個裝飾器,也可以是函式定義 結果1it s funa分析1 funa 修飾函式定義def func 將func 賦值給funa 的形參。執行的時候由...