如何在Scala列表中找到元素的索引。
val ls = List("Mary", "had", "a", "little", "lamb")
如果我要求“小”的索引,我需要得到3
答案 0 :(得分:73)
scala> List("Mary", "had", "a", "little", "lamb").indexOf("little")
res0: Int = 3
您可以尝试下次阅读scaladoc for List。 ;)
答案 1 :(得分:36)
如果要按谓词搜索,请使用.indexWhere(f)
:
val ls = List("Mary", "had", "a", "little", "lamb","a")
ls.indexWhere(_.size <= 3)
返回1,因为“had”是第一个包含最多3个字母的单词。
答案 2 :(得分:33)
如果您想要包含“a”的所有索引的列表,则:
val ls = List("Mary", "had", "a", "little", "lamb","a")
scala> ls.zipWithIndex.filter(_._1 == "a").map(_._2)
res13: List[Int] = List(2, 5)