gpt4 book ai didi

list - 如何将第 n 个和第 (n+1) 个元素折叠到 Scala 中的新列表中?

转载 作者:行者123 更新时间:2023-12-04 18:41:44 25 4
gpt4 key购买 nike

假设我有 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]] 

通过在元素上传递一个“滑动窗口”将固定大小的 block 中的元素分组(而不是像在分组中那样对它们进行分区。)

关于list - 如何将第 n 个和第 (n+1) 个元素折叠到 Scala 中的新列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18990408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com