Pythonにはリスト内の要素を検索するための多くの方法がありますが、その1つがindex
関数です。この関数は、リスト内の特定の要素の位置(インデックス)を取得するのに役立ちます。
ここでは、PythonにおけるList型の要素に対して任意の要素の位置を探索する方法(index()メソッド)について解説しています。
この記事の対象
index()の型
変数名.index(a)
index()メソッドは、Listにおける任意の「a」がどの位置に存在するか探索するものです。
index()を用いた使用例
test = [55,70,90]
print(test.index(70))
上記の出力結果は「1」です。任意の「70」がListのどの位置にあるか調べました。
結果
1
ValueErrorにおける回避方法
index関数は要素を見つけた場合にそのインデックスを返しますが、要素がリスト内に存在しない場合はValueErrorエラーが発生します。エラーを防ぐために、事前に要素の存在を確認することで回避できます。
test = [10, 20, 30, 40, 50]
element = 42
if element in test:
index = test.index(element)
print("要素", element, "のインデックス:", index)
else:
print("要素", element, "はリスト内に存在しません。")
上記は、探索する要素が無い場合にエラーにならないように回避する一例になります。
結果
要素 42 はリスト内に存在しません。
一致する要素が複数ある場合
index関数は最初に一致した要素のインデックスを返します。リスト内に複数の一致する要素がある場合、最初に見つかった要素の位置が返されます。
したがって、複数の要素を検索し、それらのインデックスをすべて取得したい場合は、繰り返しを使用することで取得できます。
test = [10, 20, 30, 40, 20, 50, 60]
element = 20
indices = [i for i, x in enumerate(test) if x == element]
print("要素", element, "のインデックス:", indices)
上記では、要素20のすべてのインデックスをリストとして取得しています。
結果
要素 20 のインデックス: [1, 4]
まとめ
index
関数は、リスト内で要素を検索するための便利なツールです。要素が見つからない場合はエラーを発生させるため、要素の存在を確認することが重要です。また、複数の一致する要素を検索する場合は、繰り返しを使用してインデックスを取得できます。適切に使用することで、リスト内での要素の位置を効率的に特定できます。