Jan*_*cki 6 scala flatten scala-collections
这张清单怎么样,
Map (
"a" -> List(1, 2)
)
Run Code Online (Sandbox Code Playgroud)
是否主要使用Scala库中的方法转换为此映射列表?
List(
Map("a" -> 1),
Map("a" -> 2)
)
Run Code Online (Sandbox Code Playgroud)
我可以自己编写解决方案,但我对使用库功能更感兴趣,因此首选解决方案应该尽可能使用Scala库,同时保持紧凑和中等清晰度.
第二个示例说明了具有多个条目的映射所需的转换.
由此,
Map (
10 -> List("10a", "10b", "10c"),
29 -> List("29a", "29b", "29c")
)
Run Code Online (Sandbox Code Playgroud)
对此,
List(
Map(
10 -> "10a",
29 -> "29a"),
Map(
10 -> "10b",
29 -> "29b"),
Map(
10 -> "10c",
29 -> "29c")
)
Run Code Online (Sandbox Code Playgroud)
可以假设所有值都是相同大小的列表.
可选地,该解决方案可以处理值为空列表但不是必需的情况.如果解决方案支持空列表值,那么此输入,
Map (
"a" -> List()
)
Run Code Online (Sandbox Code Playgroud)
应该导致List().
val m = Map (
10 -> List("10a", "10b", "10c"),
29 -> List("29a", "29b", "29c")
)
m.map{ case (k, vs) =>
vs.map(k -> _)
}.toList.transpose.map(_.toMap)
Run Code Online (Sandbox Code Playgroud)
请注意,这也处理您的"空列表"案例
| 归档时间: |
|
| 查看次数: |
2952 次 |
| 最近记录: |