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