Python | リストから指定した値のインデックス番号を取得する方法

2023-02-26Python リスト,Python

Python | リストから指定した値のインデックス番号を取得する方法

Pythonのindex()メソッドを使ってリストから指定した値のインデックス番号を取得する方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

リストから指定した値のインデックス番号を取得する

Pythonでリストから指定した値のインデックス番号を取得するにはindex()メソッドを利用する事が可能です。
index()メソッドは第一引数にインデックス番号を取得したい値を指定します。
また、第二引数はオプション引数で、検索を開始する位置を指定する事ができます。

この関数は指定した値が一番最初に見つかったインデックス番号を返します。

サンプルでは以下の手順で指定した値のインデックス番号を取得しています。

  1. 対象とするリストを用意する
  2. index()で値を指定してインデックス番号を取得する

以下のサンプルコードではリスト内で「10」の値が一番最初に見つかったインデックス番号を取得しています。

data_list = [60, 80, 10, 40, 50]
index_no = data_list.index(10)

print(index_no)
# 2

index()メソッドは指定した値がリストに存在しない場合、エラーを返します。
例えば、以下のように指定した値「10」がリスト内にない場合はエラーとなります。

data_list = [60, 80, ②0, 40, 50]
index_no = data_list.index(10)

print(index_no)
# ValueError: 10 is not in list

リストから指定した値のインデックス番号を全て取得する

index()メソッドはリストに指定した値が複数ある場合でも、最初に見つかったインデックス番号しか取得する事はできません。

リストに同じ値が複数あり、すべてのインデックス番号を取得するには以下の手順で実装する事が可能です。

  1. 対象とするリストを用意する
  2. 取得したインデックス番号を入れる空のリストを用意する
  3. for文で対象のリストを反復する
  4. if文で指定した値と一致する判定する
  5. インデックス番号を入れるリストにインデックス番号を追加する

以下のサンプルコードでは、対象リストに「10」が複数含まれています。
「index_no_group」という変数名の空のリストを作成して、for文で対象のリストを反復、指定した値「10」と一致するか判定し、一致した値のインデックス番号を追加していっています。

data_list = [60, 80, 10, 40, 50, 10]

index_no_group = []
for i in range(len(data_list)):
	if data_list[i] == 10:
		index_no_group.append(i)

print(index_no_group)
# [2, 5]