59

如何在 Scala 列表中找到元素的索引。

val ls = List("Mary", "had", "a", "little", "lamb")

如果我要求“小”的索引,我需要得到 3

4

3 回答 3

95
scala> List("Mary", "had", "a", "little", "lamb").indexOf("little")
res0: Int = 3

下次您可以尝试阅读List 的 scaladoc。;)

于 2013-07-26T05:38:51.117 回答
52

如果要按谓词搜索,请使用.indexWhere(f)

val ls = List("Mary", "had", "a", "little", "lamb","a")
ls.indexWhere(_.startsWith("l"))

这将返回 3,因为“little”是第一个以字母 l 开头的单词。

于 2015-02-08T08:44:10.143 回答
39

如果您想要包含“a”的所有索引的列表,则:

val ls = List("Mary", "had", "a", "little", "lamb","a")
scala> ls.zipWithIndex.filter(_._1 == "a").map(_._2)
res13: List[Int] = List(2, 5)
于 2013-07-26T05:42:36.600 回答