配列(リスト)から特定の値の要素を探してそのインデックスを取得するには (array_search / find_index / index / indexOf / lastIndexOf / rindex)

関連

Java

Signature:

要素が見つからなかった場合は -1 を返す。

複数ある場合は indexOf は最初の要素のインデックスを返し、 lastIndexOf は最後の要素のインデックスを返す。

要素の比較は equals メソッドで行われる。

Scala

Signature:

要素が見つからなかった場合は -1 を返す。(Option[Int]じゃないところがちょっと気持ち悪い)

複数ある場合は最初の要素のインデックスを返す。

indexOfメソッドでの要素の比較はequalsメソッドで行われる。

PHP

array_search($nemo, $arr)

見つからなかった場合は false を返す。0 を返す場合と区別するために以下のように === または !== での比較が必要。

if(array_search($nemo, $arr) === false){
    ...
}

array_search 関数 | PHP Manual
http://php.net/manual/ja/function.array-search.php

Python

lst.index(nemo);

要素が見つからなかった場合はエラーを吐く。

複数ある場合は最初の要素のインデックスを返す。

Ruby / JRuby

Array#index または Array#find_index を使う。2つはまったく同じで、引数に値を渡すと、== で要素と比較して最初に見つかったインデックスを返す。ブロックを渡すと、要素を引数として要素ごとにブロックが評価されて、trueを返した最初のインデックスを返す。

Array#rindex は逆に最後から順番に探す。

見つからなかった場合は nil を返す。

arr = [10, 20, 30, 40, 50]

p arr.index(20)
# => 1

p arr.index(60)
# => nil

p arr.index { |v| v % 7 == 2 }
# => 2

Array#index, Array#find_index | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/find_index.html

Array#rindex | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/rindex.html

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク