在scala中是否有一些扩展版本的解压缩,适用于任何List [n-tuple]而不仅仅是像Unzip这样的List [pair]?

时间:2016-07-01 19:25:03

标签: scala functional-programming

如果我有一个3元组的列表,我想要三个单独的列表。有没有比这更好的方法:

(listA, listB, listC) = (list.map(_._1), list.map(_._2). list.map(_._3))

哪个适用于任何n元组?

编辑:虽然在编写这个问题时我还没有发现三个unzip3,但有没有办法编写一个函数来获取一般的n个列表?

1 个答案:

答案 0 :(得分:0)

这个怎么样?

scala> val array = Array((1, 2, 3), (4, 5, 6), (7, 8, 9))
array: Array[(Int, Int, Int)] = Array((1,2,3), (4,5,6), (7,8,9))

scala> val tripleArray = array.unzip3
tripleArray: (Array[Int], Array[Int], Array[Int]) = (Array(1, 4, 7),Array(2, 5,8),Array(3, 6, 9))