代码之家  ›  专栏  ›  技术社区  ›  user3243499

如何将列表转换为scala中的列表?

  •  1
  • user3243499  · 技术社区  · 7 年前

    我有如下列表:

    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 回复  |  直到 7 年前
        1
  •  4
  •   Bogdan Vakulenko    7 年前

    只需使用平面图而不是地图:

    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
    
        2
  •  2
  •   pme    7 年前

    如果有 flatMap 卷入的 for-comprehension 总是一种优雅的方式:

    for{ 
       i <- 0 until 5
       r <- Seq(s"$i", s"Mr._$i")
    } yield r
    
        3
  •  0
  •   Florian Baierl    7 年前

    这对我很有用:

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

    输出:列表(0,mr.\u 0,1,mr.\u 1,2,mr.\u 2,3,mr.\u 3,4,mr.\u 4)

    推荐文章