Introduction
リストは、他のデータ型に比べて汎用性が高いため、さまざまな方法で役立ちます。
ここでは、要素を見つけるためのさまざまなシナリオを見ていきます。
Using the index() Function
element
start
end
element
を探すインデックスの範囲を表します。
start
0
end
のデフォルト値はリストの要素数(リストの最後まで探す)です。
この関数は、最初に出現した後に等しい要素がいくつあるかに関わらず、リスト内で見つけられたelement
の最初の位置を返します。
ある要素の最初の出現を見つける
index()
start
end
element
element
が最初に出現することになります。
my_list = first_occurrence = my_list.index('b')print("First occurrence of 'b' in the list: ", first_occurrence)
そうすると、期待通りの出力が得られます。
First occurrence of 'b' in the list: 1
ある要素のすべての出現箇所を検索する
ある要素のすべての出現箇所を検索するには、オプションのパラメーター start
を使用して、リストの特定のセグメントのみを検索することができます。
例えば、インデックス 3
3
の後にその要素の最初の出現があるかどうか、検索を続ける必要があります。 要素の新しい出現を見つける限り、検索を開始する場所を変えながら、このプロセスを繰り返します。
このコードを実行すると、次のようになります。
The element was found at:
ここでは try
index()
element
を見つけられない場合にエラーを投げるからです。
しかし、Pythonでは、この関数を使用する際には、try
ブロックを使用するように注意しなければなりません。
これと同じことをする別のもっとすっきりした方法は、リスト内包を使用して、index()
try
ブロックを使用しないという利点もあります。
最後に出現した要素の検索
リスト内で最後に出現した要素を検索する必要がある場合、index()
関数で使用できる 2 つのアプローチがあります。
- リストを反転し、反転したリストの中で最初に出現するものを探す
- 要素のすべての出現箇所を調べ、最後に出現したものだけを記録する
最初のアプローチに関しては、反転したリストの中で element
reversed_list_index - 1
を引くことで、これを行うことができます。
6
2つ目の方法として、すべての出現箇所を見つけるために使用したコードを微調整し、最後に見つけた出現箇所のみを追跡することができます。