Python のリストで要素のインデックスを探す方法
Azaz Farooq
2023年1月30日
-
Python リストのインデックスを
index()
メソッドで探す -
Python の
for
ループメソッドによるリストのインデックス検索 - Python リストのインデックスインスタンスを反復メソッドで探す
- Python のリストのインデックスをリスト分解法で見つける
Python では、リストの要素は順番に配列されています。リスト内の任意の要素にインデックスを使ってアクセスすることができます。Python のリストのインデックスは 0 から始まります。
この記事では、Python リストの要素のインデックスを見つけるためのさまざまな方法について説明します。
Python リストのインデックスを index()
メソッドで探す
構文は以下の通りです。
list.index(x, start, end)
ここで、start
と end
はオプションです。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]