List(1, 2) ) 主要使用 Scala 库中的方法转换到这个 map 列表? List( Map("a" -> 1), -6ren">
gpt4 book ai didi

scala - 如何在 Scala 中使用列表值转置 map

转载 作者:行者123 更新时间:2023-12-04 14:14:15 25 4
gpt4 key购买 nike

这张 map 的 list ,

Map (
"a" -> List(1, 2)
)

主要使用 Scala 库中的方法转换到这个 map 列表?
List(
Map("a" -> 1),
Map("a" -> 2)
)

我可以自己编写解决方案,但我对使用库功能更感兴趣,因此首选解决方案应尽可能使用 Scala 库,同时保持紧凑和中等可读性。

第二个示例说明了使用具有多个条目的映射所需的转换。

由此,
Map (
10 -> List("10a", "10b", "10c"),
29 -> List("29a", "29b", "29c")
)

对此,
List(
Map(
10 -> "10a",
29 -> "29a"),
Map(
10 -> "10b",
29 -> "29b"),
Map(
10 -> "10c",
29 -> "29c")
)

可以假设所有值都是相同大小的列表。

可选地,该解决方案可以处理值是空列表但不是必需的情况。如果解决方案支持空列表值,则此输入,
Map (
"a" -> List()
)

应该导致 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)

请注意,这也处理您的“空列表”情况

关于scala - 如何在 Scala 中使用列表值转置 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com