Python のリストで要素のインデックスを探す方法

Azaz Farooq 2023年1月30日
  1. Python リストのインデックスを index() メソッドで探す
  2. Python の for ループメソッドによるリストのインデックス検索
  3. Python リストのインデックスインスタンスを反復メソッドで探す
  4. Python のリストのインデックスをリスト分解法で見つける
Python のリストで要素のインデックスを探す方法

Python では、リストの要素は順番に配列されています。リスト内の任意の要素にインデックスを使ってアクセスすることができます。Python のリストのインデックスは 0 から始まります。

この記事では、Python リストの要素のインデックスを見つけるためのさまざまな方法について説明します。

Python リストのインデックスを index() メソッドで探す

構文は以下の通りです。

list.index(x, start, end)

ここで、startend はオプションです。x はリストの中から探す必要のある要素です。

以下の例を見てみましょう。

consonants = ["b", "f", "g", "h", "j", "k"]
i = consonants.index("g")
print("The index of g is:", i)

出力:

The index of g is: 2

index() メソッドは、指定した要素の最初に出現したインデックスのみを返すことに注意してください。

consonants = ["b", "f", "g", "h", "j", "g"]
i = consonants.index("g")
print("The index of g is:", i)

出力:

The index of g is: 2

リストには 2つの g があり、結果は最初の g のインデックスを示しています。

リストに要素が存在しない場合は、ValueError が生成されます。

consonants = ["b", "f", "g", "h", "j", "k"]
i = consonants.index("a")
print("The index of a is:", i)

出力:

ValueError: 'a' is not in list

Python の for ループメソッドによるリストのインデックス検索

Python でリスト内の要素のインデックスを見つけるには、for ループメソッドを使用することもできます。

コードは以下のようになります。

consonants = ["b", "f", "g", "h", "j", "k"]
check = "j"
position = -1
for i in range(len(consonants)):
    if consonants[i] == check:
        position = i
        break
if position > -1:
    print("Element's Index in the list is:", position)
else:
    print("Element's Index does not exist in the list:", position)

出力:

Element's Index in the list is: 4

Python リストのインデックスインスタンスを反復メソッドで探す

Python で指定された要素の出現数のインデックスをすべてリストから見つける必要がある場合は、リストを反復して取得しなければなりません。

コードは以下の通りです。

def iterated_index(list_of_elems, element):
    iterated_index_list = []
    for i in range(len(consonants)):
        if consonants[i] == element:
            iterated_index_list.append(i)
    return iterated_index_list


consonants = ["b", "f", "g", "h", "j", "k", "g"]
iterated_index_list = iterated_index(consonants, "g")
print('Indexes of all occurrences of a "g" in the list are : ', iterated_index_list)

出力:

Indexes of all occurrences of a "g" in the list are :  [2, 6]

Python のリストのインデックスをリスト分解法で見つける

リスト内包表記を使用することで、先ほどの方法と同じ結果を得ることができます。

コードは以下の通りです。

consonants = ["b", "f", "g", "h", "j", "k", "g"]
iterated_index_position_list = [
    i for i in range(len(consonants)) if consonants[i] == "g"
]
print(
    'Indexes of all occurrences of a "g" in the list are : ',
    iterated_index_position_list,
)

出力:

Indexes of all occurrences of a "g" in the list are :  [2, 6]

関連記事 - Python List