我有3个列表,如
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))
请告诉我如何获得此结果
答案 0 :(得分:13)
如果您有两个或三个需要压缩的列表,可以使用压缩
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))
答案 1 :(得分:11)
应该很容易实现:
(a zip b) zip c map {
case ((x, y), z) => (x, y, z)
};
答案 2 :(得分:6)
使用:
(a zip b) zip c map { case ((av,bv),cv) => (av,bv,cv) }
注意:这会缩短最短a,b,c
的结果列表。如果您希望使用默认值填充结果列表,请使用zipAll
。