在 Scala 中追加列表的匹配值
Append matched value of list in scala
如何附加此列表:
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))
谁能告诉我输出的有效参数是什么?并请详细解释它是如何工作的。
您的代码实际上无效。缺少一些东西,例如 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
的元素,则将其添加到列表中,否则(注意第二种情况具有相同的标识符,但没有条件)只是 return 元素来自 aList
.
如何附加此列表:
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))
谁能告诉我输出的有效参数是什么?并请详细解释它是如何工作的。
您的代码实际上无效。缺少一些东西,例如 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
的元素,则将其添加到列表中,否则(注意第二种情况具有相同的标识符,但没有条件)只是 return 元素来自 aList
.