【问题标题】:Combing 3 Arrays using Zip to get a Tuple of three [duplicate]使用 Zip 组合 3 个数组以获得三个元组 [重复]
【发布时间】:2020-04-01 20:15:34
【问题描述】:

我有一个像下面这样的数组

val a1 = Array("a","b","c")
var a2= Array("Apple","Box","Cat")
var a3= Array("Angel","Ball","Count")

我可以使用 zip 函数来制作两个元组。但是我怎样才能得到像下面这样的结果呢?

Array(("a","Apple","Angel"),("b","Box","Ball"),("c","Cat","Count"),)

【问题讨论】:

  • (a1, a2, a3).zipped.toArray
  • zipped 在 Scala 2.13 中已弃用。在 2.13 中,a1.lazyZip(a2).lazyZip(a3).toArray

标签: arrays scala functional-programming scala-collections


【解决方案1】:

你可以遍历索引和map:

val result = a1.indices.map(index => (a1(index), a2(index), a3(index)))

这将创建一个Vector。如果您想要Array,只需:result.toArray

【讨论】:

  • 与 .zipped 不同,如果 a1 比 a2 或 a3 长,此解决方案将失败。
猜你喜欢
  • 2020-10-16
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
相关资源
最近更新 更多