【问题标题】:Scala transform a list of maps into a map of listsScala 将映射列表转换为列表映射
【发布时间】:2018-09-30 22:23:32
【问题描述】:

我有以下输入:

List(
 Map("A" -> 1, "B" -> 2, "C" -> 3),
 Map("A" -> 4, "B" -> 5, "C" -> 6),
 Map("A" -> 7, "B" -> 8, "C" -> 9)
)

我想转换成的:

Map(
 "A" -> List(1,4,7),
 "B" -> List(2,5,8),
 "C" -> List(3,6,9)
)

我尝试过使用转置,但没有成功。

【问题讨论】:

标签: scala scala-collections


【解决方案1】:

您需要flatten,然后是groupBy,然后是mapValues,以保留列表

list.flatten.groupBy(_._1).mapValues(_.map(_._2))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2021-02-16
    • 2013-05-30
    • 2021-05-10
    • 1970-01-01
    • 2022-10-02
    相关资源
    最近更新 更多