gpt4 book ai didi

Scala 将元组列表转换为列表元组

转载 作者:行者123 更新时间:2023-12-03 01:58:47 24 4
gpt4 key购买 nike

如何将元组列表 List[(A,B)] 转换为列表元组 (List[A], List[B])

我尝试过跟随,但看起来很粗糙,我希望有更好的方法来做到这一点

  val flat: List[AnyRef] = aAndB.map{ x =>
x.map(y => List(y._1, y._2))
}.flatMap(x => x)

val typeA: List[A] = flat.filter {
case x: A => true
case _ => false
}.map(_.asInstanceOf[A])

val typeB: List[B] = flat.filter {
case x: B => true
case _ => false
}.map(_.asInstanceOf[B])

最佳答案

您想要解压

scala> List((1,"a"), (3, "b"), (4, "d")).unzip
res1: (List[Int], List[String]) = (List(1, 3, 4),List(a, b, d))

类似地,List[Tuple3[A, B, C]] 也有一个 unzip3,不过您必须自己实现任何更高数量的内容。

scala> List((1,"a", true), (3, "b", false), (4, "d", true)).unzip3
res2: (List[Int], List[String], List[Boolean]) = (List(1, 3, 4),List(a, b, d),List(true, false, true))

关于Scala 将元组列表转换为列表元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27487340/

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