我有一个ziped with index列表,我正在迭代它。在每次迭代中,我想返回此列表的一个范围,因此第一个元素是当前元素,最后一个元素是远离当前元素的k个索引元素。
val k = 5
source.zipWithIndex map { case (x, i) =>
val items = // take the elements from "x" to source(i + k)
}
最简单的方法是什么?
答案 0 :(得分:2)
似乎sliding
应该适合你:
val source = List("1", "2", "3", "4", "5", "6", "7")
source.sliding(5).toList
输出:
List(List(1, 2, 3, 4, 5), List(2, 3, 4, 5, 6), List(3, 4, 5, 6, 7))