※このページではアフィリエイト広告を利用しています

【Python入門】リスト内の要素の位置を調べる!index()メソッドの使い方

Python

Pythonにはリスト内の要素を検索するための多くの方法がありますが、その1つがindex関数です。この関数は、リスト内の特定の要素の位置(インデックス)を取得するのに役立ちます。

ここでは、PythonにおけるList型の要素に対して任意の要素の位置を探索する方法(index()メソッド)について解説しています。

この記事の対象

  • Pythonのリストで特定の値が「どこにあるか」知りたい方
  • index()の使い方と注意点を知りたい方
  • 同じ要素が複数ある場合の対処法を学びたい方
スポンサーリンク
スポンサーリンク

index()の型

変数名.index(a)

index()メソッドは、Listにおける任意の「a」がどの位置に存在するか探索するものです。

index()を用いた使用例

test = [55,70,90]
print(test.index(70))

結果

1

この例では、値「70」がリストの1番目(0から数える)にあるので、1が出力されます。

注意点:存在しない要素はエラーになる!

リストに存在しない値を 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, 20, 40]
print(test.index(20))  # 出力:1(最初に見つかった 20 の位置)

したがって、複数の要素を検索し、それらのインデックスをすべて取得したい場合は、繰り返しを使用することで取得できます。

全部の位置を取得したいときは?

以下のように リスト内包表記+enumerate() を使います。

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() には 検索開始位置・終了位置 を追加で指定することができます。

test = [10, 20, 30, 20, 40]
print(test.index(20, 2))  # 出力:3(インデックス2から検索開始)

結果

3

まとめ

機能説明
index(x)リスト内の「x」の最初のインデックスを返す
存在しない値ValueErrorが出る → in で事前確認が必要
複数一致する場合最初のインデックスのみ返される
すべての位置を知りたい場合enumerate()+内包表記を使う
範囲指定したい場合index(x, start, end) で可能

index関数は、リスト内で要素を検索するための便利なツールです。要素が見つからない場合はエラーを発生させるため、要素の存在を確認することが重要です。また、複数の一致する要素を検索する場合は、繰り返しを使用してインデックスを取得できます。適切に使用することで、リスト内での要素の位置を効率的に特定できます。

関連記事

タイトルとURLをコピーしました