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