Scala 将列表元素映射到根据先前元素计算的值
Scala map list element to a value calculated from previous elements
我有一个 Scala 中的字符串元素列表:
val list = List("a", "b", "c")
有没有任何简洁的方法来构造另一个列表,其中每个第 i 个元素将从列表的第 0..i 个元素构造(在我的例子中是 list.take(i + 1).mkString("|")
)
val calculatedLst = briefFunc(list) // List("a", "a|b", "a|b|c")
您要查找的是scan
,它使用起始值累积中间累积结果的集合。
使用 scanLeft
快速尝试。如果列表为空,将失败。
val list = List("a", "b", "c")
list.drop(1).scanLeft(list.head) {
case (r, c) => r + "|" + c
}
//> res0: List[String] = List(a, a|b, a|b|c)
我有一个 Scala 中的字符串元素列表:
val list = List("a", "b", "c")
有没有任何简洁的方法来构造另一个列表,其中每个第 i 个元素将从列表的第 0..i 个元素构造(在我的例子中是 list.take(i + 1).mkString("|")
)
val calculatedLst = briefFunc(list) // List("a", "a|b", "a|b|c")
您要查找的是scan
,它使用起始值累积中间累积结果的集合。
使用 scanLeft
快速尝试。如果列表为空,将失败。
val list = List("a", "b", "c")
list.drop(1).scanLeft(list.head) {
case (r, c) => r + "|" + c
}
//> res0: List[String] = List(a, a|b, a|b|c)