假设您获得以下列表:{1,0,0,3,4,0,8,0,5,6,0}。有什么办法可以为SCALA列表中的所有0分配一个特定的索引吗?然后必须将此索引用作另一个函数的参数。
答案 0 :(得分:3)
不完全确定你的意思,但也许这会给你一些想法:
scala> val list = List(3, 4, 0, 0, 3, 0, 2)
list: List[Int] = List(3, 4, 0, 0, 3, 0, 2)
scala> val indexed = list.zipWithIndex
indexed: List[(Int, Int)] = List((3,0), (4,1), (0,2), (0,3), (3,4), (0,5), (2,6))
scala> val zeroIndices = indexed collect { case (value, index) if value == 0 => index }
zeroIndices: List[Int] = List(2, 3, 5)
加成:
scala> zeroIndices map list
res1: List[Int] = List(0, 0, 0)