【发布时间】:2020-05-30 09:13:28
【问题描述】:
我有第一个seq,例如:
val s: Seq[Double] = List.fill(6)(0.0)
和s的索引的子序列:
val subInd: Seq[Int] = List(2, 4, 5)
现在,我要做的是用另一个 Seq 在位置 2、4 和 5 上更新 s,它的长度为 subInd:
val t: Seq[Double] = List(5.0, 6.0, 7.0)
这样,那个:
val updateBySeq(s, subInd, t): List[Double] = List(0.0, 0.0, 5.0, 0.0, 6.0, 7.0)
我在这个网站上搜索并找到了Update multiple values in a sequence,第二个答案接近我想要的功能。
但是,不同之处在于,所提供的函数将通过 one 值更新 subInd 中包含的索引上的 s。另一方面,我希望它们对应于第三个 Seq t 中的多个唯一值。
我尝试了各种方法,例如使用递归和 ListBuffers 而不是 Lists 来增量更新 s 的元素,但是它们要么保持 s 不变,要么因为我违反了一些不变性约束而出现错误。
【问题讨论】:
标签: scala scala-collections seq