Pythonを学び始めた人にとって、まず覚えたいのが「配列」の使い方です。Pythonでは「配列」という用語よりも「リスト」と呼ばれるデータ型がよく使われます。リストは複数のデータをまとめて管理できる便利な仕組みで、データ分析、Webアプリ、機械学習などさまざまな分野で活用されています。この記事では、Pythonの配列(リスト)の基本から応用までを、サンプルコード付きでわかりやすく解説していきます。
Pythonで配列と呼ばれるものにはいくつかの種類がありますが、最も一般的なのが「リスト(list)」です。リストは複数の要素を一つにまとめて扱うことができ、さまざまな型の値を一緒に格納できます。
fruits = ['apple', 'banana', 'orange']
print(fruits)
上記のように、角括弧 []
を使ってリストを定義します。fruits
には文字列が3つ含まれています。
リスト内の要素にはインデックス(位置)を使ってアクセスできます。Pythonでは0から始まります。
print(fruits[0]) # 'apple'
print(fruits[2]) # 'orange'
マイナスのインデックスを使えば、後ろからも取得できます。
print(fruits[-1]) # 'orange'
特定のインデックスに新しい値を代入することで、値を変更できます。
fruits[1] = 'grape'
print(fruits) # ['apple', 'grape', 'orange']
append()
メソッドを使えば、リストの末尾に新しい要素を追加できます。
fruits.append('peach')
print(fruits) # ['apple', 'grape', 'orange', 'peach']
remove()
や pop()
を使って削除も可能です。
fruits.remove('grape') # 値で削除
print(fruits)
fruits.pop(0) # インデックスで削除
print(fruits)
リストは for
文と組み合わせて繰り返し処理ができます。
for fruit in fruits:
print(fruit)
インデックス付きでループしたい場合は enumerate()
を使うと便利です。
for i, fruit in enumerate(fruits):
print(f'{i}: {fruit}')
Pythonのリストには、よく使われる便利なメソッドがたくさんあります。以下はその一部です。
numbers = [3, 1, 4, 1, 5, 9]
print(len(numbers)) # 要素数の取得
print(sorted(numbers)) # 昇順ソート(元のリストは変更しない)
numbers.sort() # 昇順ソート(元のリストを変更)
print(numbers)
print(numbers.count(1)) # 指定した値の出現回数
print(numbers.index(5)) # 指定した値のインデックス
スライス構文を使えば、リストの一部を簡単に取り出すことができます。
numbers = [10, 20, 30, 40, 50]
print(numbers[1:4]) # [20, 30, 40]
print(numbers[:3]) # [10, 20, 30]
print(numbers[::2]) # [10, 30, 50]
リストを生成する際に、短く書ける「リスト内包表記」もよく使われます。
squares = [x ** 2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]
条件をつけることも可能です。
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8]
Python標準のリストと、数値計算用ライブラリ NumPy の「ndarray」は用途が異なります。
import numpy as np
a = np.array([1, 2, 3])
print(a + 1) # NumPy配列はベクトル演算が可能
Pythonのリスト同士では、加算は連結(結合)になります。
l = [1, 2, 3]
print(l + [4]) # [1, 2, 3, 4]
数値計算を大量に行う場合は、NumPyの配列を使った方が効率的です。
リストと似たデータ構造に「タプル(tuple)」があります。タプルは要素の変更ができない不変の配列です。
t = (1, 2, 3)
# t[0] = 10 # これはエラーになります
データを固定したい場合や、関数の戻り値で複数値を返すときに便利です。
リストの中にリストを入れることで、二次元以上の配列も表現できます。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1][2]) # 6
ループを使って処理することも可能です。
for row in matrix:
for item in row:
print(item, end=' ')
Pythonにおける「配列」の使い方について、基本のリストから多次元リスト、内包表記やNumPyとの違いまで解説しました。Pythonではリストを使いこなせるかどうかが、プログラミングをスムーズに進める鍵となります。初心者のうちは特に、インデックスアクセス、追加・削除・ループ処理といった基本操作を丁寧にマスターすることをおすすめします。
配列操作を自在に扱えるようになれば、データ処理やアルゴリズムの実装がぐんと楽になります。ぜひ実際に手を動かしながら、リスト操作を自分のものにしていきましょう!