在Scala中将两个数组与索引一起压缩?

时间:2015-06-22 15:36:13

标签: arrays scala zip

我有两个用整数填充的数组。它们的大小相同(val array1val array2)。

我想将它们融合成元组,并将其索引作为第三个元素。例如,如果我们有val array1 = Array(5,2,6,2)val array2 = Array(9,8,3,4),那么我想获得(5,9,0),(2,8,1),(6,3,2),(2,4,3)

我尝试array1.zip(array2).zipWithIndex,但它提供了[(Int,Int),Int],而我想要(Int,Int,Int)或类似的东西。

2 个答案:

答案 0 :(得分:4)

简单地说:

array1.zip(array2).zipWithIndex.map { case ((a, b), i) => (a, b, i) }

答案 1 :(得分:1)

array1.zip(array2).zipWithIndex你几乎就在这里。

这是你想要的吗?

(array1.zip(array2).zipWithIndex).map {
     case ((i, j), z) => (i, j, z)
}

res5: Array[(Int, Int, Int)] = Array((5,9,0), (2,8,1), (6,3,2), (2,4,3))

元组上没有扁平,但是当你知道结构时,你可以轻松地做到这一点,就像这里一样。

相关问题