减少在Scala中映射[Key,List[Value]]的元组序列的可变数量

减少在Scala中映射[Key,List[Value]]的元组序列的可变数量,scala,map,tuples,seq,Scala,Map,Tuples,Seq,我有两个序列: Seq("a" -> 1, "b" -> 2) Seq("a" -> 3, "b" -> 4) 我想要的是一个如下所示的结果图: Map(a -> List(3, 1), b -> List(4, 2)) 您可以对其进行排序,也可以对其进行排序。您可以尝试 scala> val seq = Seq("a" -> 1, "b" -> 2) ++ Seq("a" -> 3, "b" -> 4) seq: Seq[(

我有两个序列:

Seq("a" -> 1, "b" -> 2)
Seq("a" -> 3, "b" -> 4)
我想要的是一个如下所示的结果图:

Map(a -> List(3, 1), b -> List(4, 2))
您可以对其进行排序,也可以对其进行排序。

您可以尝试

scala> val seq = Seq("a" -> 1, "b" -> 2) ++ Seq("a" -> 3, "b" -> 4)
seq: Seq[(String, Int)] = List((a,1), (b,2), (a,3), (b,4))

scala> seq groupBy(_._1) mapValues(_ map(_._2))
res9: scala.collection.immutable.Map[String,Seq[Int]] = Map(b -> List(2, 4), a -> List(1, 3))
val s1 = Seq("a" -> 1, "b" -> 2)
val s2 = Seq("a" -> 3, "b" -> 4)

val ss = s1 ++ s2

val toMap = ss.groupBy(x => x._1).map { case (k,v) => (k,  v.map(_._2))}

res0: scala.collection.immutable.Map[String,Seq[Int]] = Map(b -> List(2, 4), a -> List(1, 3))
scala> val seq = Seq("a" -> 1, "b" -> 2) ++ Seq("a" -> 3, "b" -> 4)
seq: Seq[(String, Int)] = List((a,1), (b,2), (a,3), (b,4))

scala> seq groupBy(_._1) mapValues(_ map(_._2))
res9: scala.collection.immutable.Map[String,Seq[Int]] = Map(b -> List(2, 4), a -> List(1, 3))