書籍「Pythonチュートリアル 第3版 11.7 リスト操作のツール」の array --- 効率のよい数値アレイ ---
おっ!、、、Python は、サードパーティに頼らなくても、自前で基本的な値 (文字、整数、浮動小数点数) のアレイ (array、配列) をコンパクトに表現できるオブジェクト型を用意してるんだね。
Pythonチュートリアル 第3版 を持ってない人は、まず⬇️を見てくださいね。
で、、、少しテストをしてみる事にしました。。。
① C の型で言う unsigned short の配列を定義して、ただ表示してみる。その後で、数値アレイの要素 1 つの内部表現に使われるバイト長も表示してみる。
import array as ar
a = ar.array('H', [1, 3, 5, 7]) # unsigned short 配列
print(a)
print('内部表現に使われるバイト長', a.itemsize) # バイト長は実行環境依存
'''
実行結果
array('H', [1, 3, 5, 7])
内部表現に使われるバイト長 2
'''
② 更に a[0] = 10 を追加して、リストとして表示してみる。
import array as ar
a = ar.array('H', [1, 3, 5, 7]) # unsigned short 配列
print(a)
print('内部表現に使われるバイト長', a.itemsize) # バイト長は実行環境依存
a[0] = 10
print(list(a))
'''
実行結果
array('H', [1, 3, 5, 7])
内部表現に使われるバイト長 2
[10, 3, 5, 7]
'''
③ a[0] = 10 を a[0] = -10 に変更してエラーが出るか検証。
import array as ar
a = ar.array('H', [1, 3, 5, 7]) # unsigned short 配列
print(a)
print('内部表現に使われるバイト長', a.itemsize) # バイト長は実行環境依存
a[0] = -10 # -10 は unsigned short ではない ('h' signed short)!!
print(list(a))
'''
実行結果
array('H', [1, 3, 5, 7])
内部表現に使われるバイト長 2
Traceback (most recent call last):
File "l3.py", line 7, in <module>
a[0] = -10 # -10 は unsigned short ではない ('h' signed short)!!
OverflowError: unsigned short is less than minimum
'''
このように、違う型の値を代入しようとすると、実際エラーになりました。
これで array --- 効率のよい数値アレイ --- の基本の基本は分かりました。
興味がある人は、他にも色々と試してみてください。
#Python
#Python3
#Pythonチュートリアル
#Pythonチュートリアル第3版
#アレイ
#数値アレイ
#配列
#array
#itemsize
#プログラム
#プログラミング