Pythonのメソッドの紹介です。それぞれの説明と使用例は以下になります。
M271 array.extend(iterable)
array.extend() は、任意のイテラブルから要素を取り出して、配列の末尾にまとめて追加するメソッドです。
▼ 機能
指定された iterable を1つずつ読み取って append する
値は配列の 型コード(typecode)に合う必要がある
失敗した場合 TypeError が出る
list より高速(低レベル配列)
▼ 使い方(例)
from array import array
a = array('i', [1, 2, 3]) # int 配列
a.extend([4, 5, 6])
print(a) # array('i', [1, 2, 3, 4, 5, 6])
型が合わない例:
a.extend([1.5]) # TypeError: integer argument expected
M272 array.frombytes(b)
array.tobytes() でエクスポートしたバイト列をそのまま array に読み込むためのメソッドです。
▼ 機能
バイト列 b の内容を、配列の型コードに従って解釈し、要素として追加する
バイナリデータを高速に読み込める
ファイル形式などのパースに利用される
バイト数が itemsize の整数倍でなければエラー
▼ 使い方(例)
from array import array
a = array('i', [1, 2, 3])
b = a.tobytes() # バイト列へ変換
print(b) # b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'
# 空の配列に復元
c = array('i')
c.frombytes(b)
print(c) # array('i', [1, 2, 3])
M273 array.fromfile(f, n)
array.fromfile(f, n) は、バイナリファイルから指定数 n の要素を直接読み込むメソッドです。
▼ 機能
ファイルから n 個の要素を読み込む
読み込み量は n * itemsize バイト
形式は配列の typecode に従う
非常に高速(Cレベルで処理される)
▼ 使い方(例)
書き込み側(tofile)
from array import array
a = array('i', [10, 20, 30, 40])
with open('data.bin', 'wb') as f:
a.tofile(f) # バイナリ書き込み
読み込み側(fromfile)
from array import array
b = array('i')
with open('data.bin', 'rb') as f:
b.fromfile(f, 4) # 4 要素読み込む
print(b) # array('i', [10, 20, 30, 40])
▼ 注意:ファイルサイズが不足していると EOFError
b.fromfile(f, 100) # ファイルが小さい場合 → EOFError
Информация по комментариям в разработке