假设我有两个列表:
List(("a",1),("b",4),("d",5),("a",7),("b",6))
和
List("a","b","c","d")
我想根据第一个列表对它们进行分组,这样我得到:
List("a" -> List(("a",1),("a",7)), "b" -> List(("b",4),("b",6)), "d" -> List(("d",5)))
实现这一目标的最佳方法是什么?我知道我可以对预先确定的值使用 groupBy 和模式匹配,但是当第二个列表不是预先确定的时,我会有点卡住。
编辑:
我需要第二个列表中对象的副本作为已处理列表的键。我可能需要按第二个列表中的 on 对象的参数进行分组,但仍将整个对象保持为键……如果有意义的话。
List(("a",1),("b",4),("d",5),("a",7),("b",6))
List(("a",1,1),("b",2,3),("c",5,6),("d",6,7))
变成:
List(("a",1,1) -> List(("a",1),("a",7)), ("b",2,3) -> List(("b",4),("b",6)), ("d",6,7) -> List(("d",5)))
对不起,不清楚!