2017-09-04 2 views
0

Transformation Ich habe folgende Eingabe:Scala eine Liste der Karten in einer Karte von Listen

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

, die ich in transformieren wollen:

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

Ich habe versucht, transponieren zu verwenden, aber ich Ich komme nirgendwohin.

+1

Mögliche Duplikat zu halten [Scala: Merge Karten von key] (https://stackoverflow.com/questions/7755214/scala- merge-maps-by-key) (und einige andere Fragen) –

Antwort

2

Sie müssen flatten, dann groupBy und dann mapValues die Liste

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