Pythonのリストでは、特定の要素のインデックスを取得するために、組み込みの .index()
メソッドを使用できます。このメソッドは、リスト内の最初のアイテムの値が x
と等しいもののゼロベースのインデックスを返します。該当するアイテムがない場合、ValueError
を引き起こします。
例えば、次のように使用できます:
>>> ["foo", "bar", "baz"].index("bar")
1
この例では、文字列 “bar” のインデックスを取得しています。結果は 1
となります。
しかし、.index()
メソッドはリスト内の要素を順番にチェックし、一致するものを見つけるまで探し続けます。リストが長く、値がリストの先頭近くにあることが保証されていない場合、これはコードの速度を遅くする可能性があります。この問題は、異なるデータ構造を使用することで完全に回避することができます。
また、要素がリスト内の特定の部分にあることがわかっている場合、start
と end
のパラメータを使用して検索を絞り込むことができます。
>>> import timeit
>>> timeit.timeit('l.index(999_999)', setup='l = list(range(0, 1_000_000))', number=1000)
この例では、l.index(999_999)
の実行時間を計測しています。l
は 0
から 1_000_000
までの範囲のリストで、999_999
のインデックスを取得しようとしています。
Pythonの .index()
メソッドを理解し、適切に使用することで、リスト内の特定の要素の位置を効率的に特定することができます。