nishiyamasuの日記

忘れやすいので、メモ。。。

pythonでリストから要素を探す

整数だけから成るリストから、1つの整数を探し出し、インデックス(何番目にあるか)を求めます。

例題としては、次のようになります。

リスト:[ 3, 1, 0, 5, 11, 4, 7, 2 ]
探す整数:5

求めるインデックス:3

1つのやり方として、for文で最初から最後まで要素を探して、対象の整数と一致したときにそのインデックスが答えになるという方法があります。単純ですが分かりやすいです。

def find(array, target):
    for i in range(len(array)):
        if array[i] == target:
            return i
    return -1

print(find([3, 1, 0, 5, 11, 4, 7, 2], 5))

上のコードについて、findという関数が実際にインデックスを求めます。 引数に、リストと、探す対象の整数を指定します。対象の整数が存在しなかった場合、-1を返します。

実行結果は次のようになります。

3

リストの長さをnとすると、最大でn回の探索が発生します。