给出以下 Scala 列表:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
我怎样才能得到:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
由于 zip 只能用于组合两个 List,我认为您需要以某种方式迭代/减少主 List。毫不奇怪,以下方法并不奏效:
scala> l reduceLeft ((a, b) => a zip b)
<console>:6: error: type mismatch;
found : List[(String, String)]
required: List[String]
l reduceLeft ((a, b) => a zip b)
有什么建议吗? 我想我错过了一个非常简单的方法。
更新: 我正在寻找一种解决方案,它可以接受一个包含 N 个 List 和 M 个元素的 List,并创建一个包含 M 个 TupleNs 的 List。
更新2: 事实证明,对于我的特定用例来说,拥有一个列表列表比拥有一个元组列表更好,所以我接受南瓜的回应。它也是最简单的,因为它使用本机方法。