我在尝试查找此for循环中的索引10(最后一个元素)时遇到了问题
例如
val l: List[Int] = List(10, 1, 4, 5, 6, 10)
for(i <- l)
{
println(i + " " + l.indexOf(i))
}
输出
10 0
1 1
4 2
5 3
6 4
10 0
如何在最后一行获得10 5
?
答案 0 :(得分:7)
List(10, 1, 4, 5, 6, 10).zipWithIndex.foreach{ case(a, b) => println(a + " " + b)}
> 10 0
1 1
4 2
5 3
6 4
10 5
您可以使用zipWithIndex
生成pair
value
和index
。
答案 1 :(得分:0)
您可以使用范围代替:
let tempL = l;
let el;
for (i <- 0 until l.length) {
el = tempL.head;
prinln(i + " " + el);
tempL = tempL.tail
}
可以简化,只是一个想法
答案 2 :(得分:0)
val l: List[Int] = List(10, 1, 4, 5, 6, 10)
for((v, i) <- l.zipWithIndex) {
println(v + " " + l.indexOf(v, i))
}
生成当前索引,然后使用indexOf()从当前索引向前搜索将起作用。