通过Scala中的另一个Seq更新Seq的特定索引

问题描述 投票:0回答:1

例如,我有第一个序列:

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中包含的索引进行更新。另一方面,我希望它们在第三个Seq t中对应于多个唯一值。

[我尝试了各种方法,例如使用递归和ListBuffers而不是List来增量更新s的元素,但是它们使s保持不变,或者因为违反了某些不变性约束而出现错误,因此出现错误。

我有第一个序列,例如:val s:Seq [Double] = List.fill(6)(0.0)和s的索引的子序列:val subInd:Seq [Int] = List(2, 4,5)现在,我想做的是在...

scala scala-collections seq
1个回答
1
投票

这应该起作用:

© www.soinside.com 2019 - 2024. All rights reserved.