zun*_*elf 2 collections scala list
给出以下Scala列表:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到:
List("a1a2a3","b1b2b3","c1c2c3")
Run Code Online (Sandbox Code Playgroud)
是否可以在列表中使用zipped.map(_ + _)具有两个以上的列表?或者还有其他方法可以解决这个问题吗?
您可以使用以下.transpose方法:
scala> val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
l: List[List[String]] = List(List(a1, b1, c1), List(a2, b2, c2), List(a3, b3, c3))
scala> l.transpose
res0: List[List[String]] = List(List(a1, a2, a3), List(b1, b2, b3), List(c1, c2, c3))
Run Code Online (Sandbox Code Playgroud)
然后映射外部列表,创建每个String使用mkString:
scala> l.transpose.map(_.mkString)
res1: List[String] = List(a1a2a3, b1b2b3, c1c2c3)
Run Code Online (Sandbox Code Playgroud)