【问题标题】:Convert List[List[Any]] into List[List[String]] in Scala在 Scala 中将 List[List[Any]] 转换为 List[List[String]]
【发布时间】:2018-02-20 13:25:52
【问题描述】:

我有以下List[List[Any]],我想将其转换为List[List[String]]

val input:List[List[Any]] = List(List(1234), List(234, 678), List(8765, 90876, 1))

我正在寻找以下输出:

val output:List[List[String]] = List(List(1234), List(234, 678), List(8765, 90876, 1))

我已尝试执行以下操作:

val output:List[List[String]] = input.map(_.toString).toList
// or 
val output:List[List[String]] = input.map(_.toString)

以上都没有给我想要的输出。

【问题讨论】:

  • input.map(_.map(_.toString))
  • 是的。这行得通。谢谢。

标签: string scala list


【解决方案1】:

因为您的列表是嵌套的,所以您需要将其映射两次。

为什么下面不起作用?

val output:List[List[String]] = input.map(_.toString)

因为,_ placeholder 持有 List[String] 类型的值并应用 toString 方法将 List 转换为 String,因此结果将是 List[String] 类型而不是 List[List[String]]

scala> input.map(_.toString)
res2: List[String] = List(List(1234), List(234, 678), List(8765, 90876, 1))

因此,您需要映射输入两次。

scala> input.map(_.map(_.toString))
res0: List[List[String]] = List(List(1234), List(234, 678), List(8765, 90876, 1))

【讨论】:

  • 知道了。非常感谢。
猜你喜欢
  • 2020-01-11
  • 1970-01-01
  • 2019-09-10
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 2021-02-28
相关资源
最近更新 更多