如何在Scala中使用相同的元素合并元组

Out*_*der 9 scala tuples list slick

例如,如果我有以下元组:

(1, "a", "l")
(1, "a", "m")
(1, "a", "n")
Run Code Online (Sandbox Code Playgroud)

我想像这样合并它们:

(1, "a", List("l", "m", "n"))
Run Code Online (Sandbox Code Playgroud)

在我的例子中,列表是使用Slick的内部联接的结果.因此,第一个和第二个元素(1"a")应该是相同的.如果有人知道在使用Slick的情况下如何合并,请告诉我.

或者更一般地说,通过相同的元素将元组与内部列表合并的方式.

(1, "a", "l")
(1, "a", "m")
(1, "b", "n")
(1, "b", "o")
// to like this
List( (1, "a", List("l", "m")), (1, "b", List("n", "o")) )
Run Code Online (Sandbox Code Playgroud)

gzm*_*zm0 8

怎么样:

val l = ??? // Your list

val groups = l groupBy { case (a, b, c) => (a,b) }

val tups = groups map { case ((a,b), l) => (a,b,l.map(_._3)) }

tups.toList
Run Code Online (Sandbox Code Playgroud)