このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【Python】arrayモジュール配列の使い方を解説

今回はPythonのarrayモジュールを使った配列について紹介します。

Pythonで配列というと一般的にリストを指しますが、arrayモジュールはC言語のような配列です。
(リストは文字列や数値を混在させることができますが、arrayモジュールの配列は格納できる値の型を指定します)

メモリ使用量を節約できるので大規模データを扱う際には活用してみてください。

リストについては↓の記事をご覧ください。

arrayモジュールの使い方

import array 

# データ型(ここでは'i')を指定して配列を初期化 
arr = array.array('i', [1, 2, 3]) 
 
arr.append(4) # 要素の追加 
arr.fromlist([5, 6, 7, 8]) # リストから要素を追加 
 
print(arr[1]) # 2 
print(arr) # array('i', [1, 2, 3, 4, 5, 6, 7, 8])

arrayを使うときはimportによってarrayモジュールを読み込みます。

メソッドなどはほとんどリストと同じなのですが、初期化方法に違いがあります。

# データ型(ここでは'i')を指定して配列を初期化 
arr = array.array('i', [1, 2, 3]) 

arrayモジュールでは格納できる値の型を1つにする必要があります。その型は初期化するときに指定します。

サンプルコードでは引数に’i’を渡してint型の配列を作成しています。

型の種類については末尾に一覧表を記載したので、ご確認ください。

arrayモジュールのメソッド一覧

arrayモジュールのメソッドは下表のようになります。

大半のメソッドはリストと同じ名称で、バイト数を把握するためのメソッドなどが存在します。

メソッド説明
append(x)値 x の新たな要素を配列の末尾に追加します。
buffer_info()配列の内容を記憶するために使っているバッファの、現在のメモリアドレスと要素数の入ったタプル (address, length) を返します。
byteswap()配列のすべての要素に対して「バイトスワップ」 (リトルエンディアンとビッグエンディアンの変換) を行います。このメソッドは大きさが 1、2、4 および 8 バイトの値のみをサポートしています。
count(x)シーケンス中の x の出現回数を返します。
extend(iterable)iterable から要素を取り出し、配列の末尾に要素を追加します。
frombytes(s)文字列から要素を追加します。
fromfile(f, n)ファイルオブジェクト f から (マシンのデータ形式そのままで) n 個の要素を読み出し、配列の末尾に要素を追加します。
fromlist(list)リストから要素を追加します。
fromunicode(s)指定した Unicode 文字列のデータを使って配列を拡張します。配列の型コードは 'u’ でなければなりません。
index(x[, start[, stop]])i が配列内で x が最初に出現するインデックスとなるような最小の i を返します。
insert(i, x)配列中の位置 i の前に値 x をもつ新しい要素を挿入します。
pop([i])配列からインデックスが i の要素を取り除いて返します。
remove(x)配列中の x のうち、最初に現れたものを取り除きます。
reverse()配列の要素の順番を逆にします。
tobytes()array をマシンの値の array に変換して、 bytes の形で返します。
tofile(f)すべての要素を (マシンの値の形式で) file object f に書き込みます。
tolist()配列を同じ要素を持つ普通のリストに変換します。
tounicode()配列を Unicode 文字列に変換します。配列の型コードは 'u’ でなければなりません。
arrayモジュールのメソッド一覧

arrayモジュールのデータ型一覧

arrayモジュールのデータ型は下表のようになります。

型コードC の型Python の型最小サイズ (バイト単位)
'b’signed charint1
'B’unsigned charint1
'u’wchar_tUnicode文字(unicode型)2
'h’signed shortint2
'H’unsigned shortint2
'i’signed intint2
'I’unsigned intint2
'l’signed longint4
'L’unsigned longint4
'q’signed long longint8
'Q’unsigned long longint8
'f’浮動小数点数浮動小数点数4
'd’double浮動小数点数8
arrayモジュールのデータ型一覧

Python

Posted by やろまい