如何压缩列表清单

时间:2016-07-12 14:05:02

标签: scala

我有

val l List[List[Int]] = List(List(0,0,0),List(1,1,1))

我想把它拉上拉链。有没有简洁的方法来代替通过索引访问主列表的每个元素并将其与zip命令一起压缩?

1 个答案:

答案 0 :(得分:3)

这是有效的,假设外部列表有两个内部列表。

List(List(0,0,0), List(1, 1, 1)) match {
  case l1 :: l2 :: Nil => l1 zip l2
  case x => ??? // up to you
}

为了考虑失败的可能性,您可以将结果包装成Option

val x = List(List(0,0,0), List(1, 1, 1))
val res: Option[List[Int]] = x match {
  case l1 :: l2 :: Nil => Some(l1 zip l2)
  case x => None
}