【问题标题】:How to sum pairs of values in a List in Scala?如何在Scala中对列表中的值求和?
【发布时间】:2021-09-20 08:47:05
【问题描述】:

假设我有一个列表:

val list = List(1, 3, 4, 5, 6)

如何将每个元素与下一个元素相加以创建对的求和值列表?在我的示例中,我想得到:

List(4, 7, 9, 11)

我应该编写哪些操作来以函数方式执行此操作?

【问题讨论】:

    标签: list scala functional-programming


    【解决方案1】:

    好的,经过一番搜索,我找到了sliding(...) 函数:

    val list = List(1, 3, 4, 5, 6)
    list.sliding(2).toSeq.map(_.sum) //List(4, 7, 9, 11)
    

    这很好用

    【讨论】:

    • 另一种适用于列表的方法是:(list lazyZip list.tail).map { case (x, y) => x + y }
    • 如果列表为空,.tail 将崩溃。如果你想返回一个空列表,你可以使用.drop(1)
    猜你喜欢
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2020-03-19
    • 2014-03-03
    相关资源
    最近更新 更多