假设我有List(1,2,3,4,5),我想获取List(3,5,7,9),即元素与上一个元素(1 + 2,2+ 3,3 + 4,4 + 5)
我试图通过列出两个列表来做到这一点:
val list1 = List(1,2,3,4)
val list2 = (list1.tail ::: List(0)) // 2,3,4,5,0
for (n0_ <- list1; n1th_ <- list2) yield (n0_ + n1_)
但这就像交叉产品一样将所有元素相互组合,我只想成对组合元素。我是函数编程的新手,我以为我会使用map(),但似乎无法这样做。
List(1, 2, 3, 4, 5).sliding(2).map(_.sum).to[List]
做这份工作。
文件:
def sliding(size: Int): Iterator[Seq[A]]
通过在固定大小的块上传递“滑动窗口”来对元素进行分组(与分组方式不同,这与对它们进行分区相反)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句