加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Scala中转置包含列表值的地图

发布时间:2020-12-16 18:59:41 所属栏目:安全 来源:网络整理
导读:这张清单怎么样, Map ( "a" - List(1,2)) 是否主要使用Scala库中的方法转换为此映射列表? List( Map("a" - 1),Map("a" - 2)) 我可以自己编写解决方案,但我对使用库功能更感兴趣,因此首选解决方案应该尽可能使用Scala库,同时保持紧凑和中等清晰度. 第二个示
这张清单怎么样,

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

是否主要使用Scala库中的方法转换为此映射列表?

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","29c")
)

m.map{ case (k,vs) =>
  vs.map(k -> _)
}.toList.transpose.map(_.toMap)

请注意,这也处理您的“空列表”案例

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读