Pythonのindex
メソッドは、リストや文字列などのシーケンス型のデータに対して使用できます。このメソッドは、指定した値がシーケンス内で最初に出現する位置(インデックス)を返します。
mylist = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
print(mylist.index('bbb')) # 実行結果: 1
print(mylist.index('eee')) # 実行結果: 4
上記の例では、'bbb'
と'eee'
のインデックスを取得しています。Pythonのインデックスは0から始まるため、'bbb'
は1番目、'eee'
は4番目に位置しています。
ただし、index
メソッドは指定した値がシーケンス内に存在しない場合、ValueError
を発生させます。
print(mylist.index('fff')) # ValueError: 'fff' is not in list
また、シーケンス内に同じ値が複数存在する場合、index
メソッドは最初に見つかった要素のインデックスを返します。
mylist = ['aaa', 'bbb', 'ccc', 'ccc', 'aaa']
print(mylist.index('aaa')) # 実行結果: 0
print(mylist.index('ccc')) # 実行結果: 2
全てのインデックスを取得したい場合は、enumerate
関数とリスト内包表記を使用します。
idxlist = [i for i, x in enumerate(mylist) if x == 'ccc']
print(idxlist) # 実行結果: [2, 3]
このように、Pythonのindex
メソッドはシーケンス内の特定の値の位置を効率的に取得するための強力なツールです。ただし、index
メソッドの使用には注意が必要で、特に大きなリストに対しては時間がかかる可能性があります。そのため、パフォーマンスが重要な場合は、他のデータ構造(例えば辞書)を検討することをお勧めします。