Pythonのリストでは、index()
メソッドを使って特定の要素のインデックスを取得することができます。しかし、このメソッドは最初に一致した要素のインデックスしか返しません。リスト内のすべての一致する要素のインデックスを取得するには、以下のような方法があります。
def index_multi(lst, item):
return [i for i, x in enumerate(lst) if x == item]
# 使用例
lst = [1, 2, 1, 3, 1]
print(index_multi(lst, 1)) # 出力: [0, 2, 4]
この関数index_multi
は、リストlst
と検索したい要素item
を引数に取り、lst
内のすべてのitem
のインデックスをリストとして返します。enumerate()
関数を使ってリストのインデックスと要素を同時に取得し、リスト内包表記を使って一致する要素のインデックスだけを抽出しています。
この方法を使えば、Pythonのリストから複数のインデックスを効率的に取得することができます。これは、データ分析や機械学習などの領域で、特定の条件に一致する要素の位置を知りたいときなどに役立ちます。.