Scala,将多个列表转换为元组列表

7

I have 3 lists like

val a = List("a", "b", "c")
val b = List(1, 2, 3)
val c = List(4, 5, 6)

我希望将它们转换成以下格式。
List(("a", 1, 4), ("b", 2, 5), ("c", 3, 6))

请告诉我如何获得这个结果

3个回答

14

如果您有两个或三个需要合并在一起的列表,您可以使用 zip 函数。

val a = List("a", "b", "c")
val b = List(1, 2, 3)
val c = List(4, 5, 6) 

(a,b,c).zipped.toList

这将导致: List((a,1,4), (b,2,5), (c,3,6))


12

应该很容易实现:

(a zip b) zip c map {
    case ((x, y), z) => (x, y, z)
};

7
(a, b, c) 使用 zipped.toList 进行压缩并转换为列表。 - Mysterious Dan
谢谢alex23和神秘的Dan。它起作用了。现在解决问题看起来如此简单。 - Srinivas

6

使用:

(a zip b) zip c map { case ((av,bv),cv) => (av,bv,cv) }

注意:此操作将缩短最短列表 a,b,c 的结果列表。如果您希望结果列表用默认值填充,请使用zipAll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接