Python配列:作成、操作、高度な操作 – エキスパートガイド
Python配列とは
Python配列は、同種の要素を連続したメモリに格納するコレクションで、リストより効率的なストレージと高速な数値演算を提供します。組み込みarrayモジュールが配列の作成と操作を担当します。
Python配列を使うべきとき
同じ型の大量の値を格納し、数値計算を行う必要がある場合にPython配列は理想的です。リストよりメモリ消費が少なく、特に大規模データセットでは高速なアクセスが可能です。
配列作成の構文
arrayモジュールをインポートし、array.array(typecode, initializer)を呼び出します:
import array
my_array = array.array('i', [1, 2, 3])
配列タイプコード
| タイプコード | Python型 | C型 | 最小サイズ(バイト) |
|---|---|---|---|
| 'u' | Unicode文字 | Py_UNICODE | 2 |
| 'b' | Int | Signed char | 1 |
| 'B' | Int | Unsigned char | 1 |
| 'h' | Int | Signed short | 2 |
| 'l' | Int | Signed long | 4 |
| 'L' | Int | Unsigned long | 4 |
| 'q' | Int | Signed long long | 8 |
| 'Q' | Int | Unsigned long long | 8 |
| 'H' | Int | Unsigned short | 2 |
| 'f' | Float | Float | 4 |
| 'd' | Float | Double | 8 |
| 'i' | Int | Signed int | 2 |
| 'I' | Int | Unsigned int | 2 |
要素へのアクセス
要素はゼロベースインデックスでアクセス:
import array
balance = array.array('i', [300, 200, 100])
print(balance[1]) # 200
負のインデックスやスライスも使用可能:
import array
arr = array.array('q', [3, 9, 6, 5, 20, 13, 19, 22, 30, 25])
print(arr[1:4]) # array('q', [9, 6, 5])
print(arr[7:10]) # array('q', [22, 30, 25])
要素の挿入
insert(index, value)で特定位置に値を挿入:
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance) # array('i', [300, 200, 150, 100])
要素の変更
配列はミュータブルなので直接代入で変更:
import array
arr = array.array('b', [3, 6, 4, 8, 10])
arr[0] = 99
print(arr) # array('b', [99, 6, 4, 8, 10])
連結もサポート:
import array
first = array.array('b', [4, 6, 8])
second = array.array('b', [9, 12, 15])
combined = first + second
print(combined) # array('b', [4, 6, 8, 9, 12, 15])
要素の削除
Popはインデックス指定でアイテム削除:
import array
arr = array.array('b', [20, 25, 30])
arr.pop(2)
print(arr) # array('b', [20, 25])
Delは位置指定で要素削除:
import array
arr = array.array('b', [10, 4, 5, 5, 7])
del arr[4]
print(arr) # array('b', [10, 4, 5, 5])
Removeは最初に見つかった値を削除:
import array
arr = array.array('b', [2, 3, 4])
arr.remove(3)
print(arr) # array('b', [2, 4])
検索とインデックス
index(value)で値のインデックスを検索:
import array
arr = array.array('b', [2, 3, 4, 5, 6])
print(arr.index(3)) # 1
配列の反転
インプレースで反転:
import array
arr = array.array('b', [1, 2, 3])
arr.reverse()
print(arr) # array('b', [3, 2, 1])
Unicodeへの変換
タイプ'u'の配列のみtounicode()をサポート:
from array import array
p = array('u', [u'\u0050', u'\u0059', u'\u0054', u'\u0048', u'\u004F', u'\u004E'])
print(p) # array('u', 'PYTHON')
print(p.tounicode()) # PYTHON
要素のカウント
count(x)で出現回数をカウント:
import array
arr = array.array('b', [2, 3, 5, 4, 3, 3, 3])
print(arr.count(3)) # 4
配列の走査
forループでイテレーション:
import array
arr = array.array('i', [300, 200, 100])
for x in arr:
print(x)
まとめ
- Python配列はタイプコードで定義される単一型の要素を保持
arrayモジュールで作成、リストよりメモリ効率が良い- インデックス、スライス、組み込みメソッド(
insert,remove,pop,reverse)でデータ操作 - 連結、カウント、検索をサポート
'u'配列のみUnicode文字列に変換可能
Python
- C++配列を徹底解説:宣言、初期化、ポインタ活用テクニック
- C++動的配列の確保をマスター:コード例付き実践ガイド
- C#コレクション実践チュートリアル:実例で学ぶ柔軟なデータ管理
- Python str.count()マスター:文字と部分文字列のカウント実例集
- Python format()文字列を明確な例でマスター
- Python String.find()メソッド完全ガイド:構文、例、代替手法
- Pythonラムダ関数をマスターする:実例とベストプラクティス
- Python round()関数を実例で徹底解説
- Python map()関数をマスター:構文、例、ベストプラクティス
- Python timeit():実行時間測定の実例付きガイド
- Python type()とisinstance()の理解:実例付き解説