Scala 将映射列表转换为列表映射

Scala transform a list of maps into a map of lists

我有以下输入:

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)
)

我尝试过使用转置,但我没有任何进展。

您需要flatten,然后groupBy,然后mapValues才能保留列表

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