如何在Scala中将列表列表转换为列表?

时间:2018-09-20 08:44:18

标签: scala

我有一个列表列表,如下所示:

val xl = (0 until 5).map(i => {Seq(s"$i", s"Mr._$i")}).toList

我想将其转换为以下列表或字符串序列:

List("0", "Mr._0","1", "Mr._1","2", "Mr._2","3", "Mr._3","4", "Mr._4")

我是Scala的新手,无法在Scala中找到任何可帮助我将列表列表转换为列表的功能。

3 个答案:

答案 0 :(得分:4)

只需使用flatMap而不是地图:

val xl = (0 until 5).flatMap(i => Seq(s"$i", s"Mr._$i"))

val xl = (0 until 5).map(i => Seq(s"$i", s"Mr._$i")).flatten

答案 1 :(得分:2)

如果涉及到flatMapfor-comprehension总是很优雅的方式:

for{ 
   i <- 0 until 5
   r <- Seq(s"$i", s"Mr._$i")
} yield r

答案 2 :(得分:0)

这对我有用:

val xl = (0 until 5).map(i => List(s"$i", s"Mr._$i")).toList
println(xl.flatten)

输出:列表(0,_0、1、1,_1、2,_2、3,_3、4,_4先生)