如何在scala中组合多个列表的元素

Ami*_*jan 0 scala scala-collections

我是Scala的新手.我有三个List.

List("XX", None,None,None)

List( None,"YY",None,None)

List(None,None,None, "ZZ")
Run Code Online (Sandbox Code Playgroud)

我需要合并这些列表来创建一个应该看起来像的列表

List("XX","YY",None,"ZZ")
Run Code Online (Sandbox Code Playgroud)

scala有什么方法可以实现这个结果吗?谢谢

Nya*_*vro 5

也许你需要这个?

val list: List[List[Option[String]]] = List(
  List(Some("XX"), None, None, None),
  List(None, Some("YY"), None, None),
  List(None, None, None, Some("ZZ"))
)
list.tail.foldLeft(list.head) {
  case (acc, item) => acc.zip(item).map {
    case (Some(x), _) => Some(x)
    case (_, y) => y
  }
}
Run Code Online (Sandbox Code Playgroud)