5
假设我有一个返回这个的方法。将元组转换为第一项的列表
Vector[ (PkgLine, Tree) ]()
我想将其转换为PkgLines列表。我想放弃树。我没有看到scala库中的任何东西可以让我这样做。任何人有任何简单的想法?谢谢。
假设我有一个返回这个的方法。将元组转换为第一项的列表
Vector[ (PkgLine, Tree) ]()
我想将其转换为PkgLines列表。我想放弃树。我没有看到scala库中的任何东西可以让我这样做。任何人有任何简单的想法?谢谢。
val list = vector.map(_._1).toList
如果你有一个三元组t
,您可以使用t._1
访问它的第一个元素。因此,使用map
操作时,您正在有效地丢弃树并直接存储PkgLines
。然后,您只需将Vector
转换为List
即可。
使用map
与一对的第一个元素的选择作品:
scala> val v = Vector[(Int,String)]((5,"5"), (42,"forty-two"))
v: ... = Vector((5,5), (42,forty-two))
scala> v.map(_._1).toList
resN: List[Int] = List(5, 42)
或者,你可以使用unzip
:
scala> val (ints,strings) = v.unzip
ints: scala.collection.immutable.Vector[Int] = Vector(5, 42)
strings: scala.collection.immutable.Vector[String] = Vector(5, forty-two)
scala> ints.toList
resN: List[Int] = List(5, 42)
'breakOut'是跳过中介'矢量的好方法':'vector.map(_._ 1)(collection.breakOut):List [PkgLine]' – 4e6 2011-12-19 17:07:17