gpt4 book ai didi

Scala groupby 元组

转载 作者:行者123 更新时间:2023-12-05 01:45:21 27 4
gpt4 key购买 nike

我有一个 Seq[((元组 A),(元组 B))]

有没有一种简单的方法来对元组 A 进行分组,以便我得到 Seq[(Tuple A, Seq[Tuple B])]

我试过 groupby(x => x.TupleA) 但它抛出映射异常:不知道如何序列化元组的键。

最佳答案

我认为这行得通。使用 groupBy(_._1) 按元组的第一个元素对序列进行分组,并将元组的第二个元素收集到列表中:

val s = Seq(((1,2,3), (4,5,6)), ((1,2,3), (5,6,7)), ((2,3,4), (4,5,6)))

s.groupBy(_._1).mapValues(_.map(_._2))
// res1: scala.collection.immutable.Map[(Int, Int, Int),Seq[(Int, Int, Int)]] =
// Map((1,2,3) -> List((4,5,6), (5,6,7)), (2,3,4) -> List((4,5,6)))

如果希望结果是列表而不是Map,使用toList转换:

s.groupBy(_._1).mapValues(_.map(_._2)).toList

给出:

// List(((1,2,3),List((4,5,6), (5,6,7))), ((2,3,4),List((4,5,6))))

关于Scala groupby 元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41861064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com