如何附加此列表:
val aList = List(List(8),List(7),List(6),List(4),List(9))
基于:
val aUpdate = List(8,7,4,2,9)
,输出应为:
val aList = List(List(8,8), List(7,7),List(6),List(4),List(9,9))
我原本期望以下代码可以使用:
val aList = for (i <- 1 to 4) aList map (_(i)) {
case if aList map (_(i)) contains aUpdate(i) => ++ List(map.aUpdate(i))
任何人都可以告诉我输出的有效参数是什么?请详细解释它的工作原理。
答案 0 :(得分:0)
您的代码无效。缺少一些东西,例如case
之后的模式标识符,连接之前的列表值,右括号等。
这是一种方法:
val r = (aList zip aUpdate).map {
case (list, update) if (list.contains(update)) => update :: list
case (list, update) => list
}
// result: List(List(8, 8), List(7, 7), List(6), List(4), List(9, 9))
将一个列表与另一个列表一起压缩导致成对列表,其中第n对由第一个列表中的第n个元素和第二个列表中的第n个元素组成。现在你可以轻松地做你想做的事了;如果来自aList
的元素包含来自aUpdate
的元素,则将其添加到列表中,否则(注意第二种情况具有相同的标识符,但没有条件)只返回{{1}中的元素}}