首页 > 解决方案 > 如何将四个列表组合成Scala中的列表列表

问题描述

假设我有 4 个固定列表,长度都相同:

val list1: List[String] = List("a", "1", "w")
val list2: List[String] = List("b", "2", "x")
val list3: List[String] = List("c", "3", "y")
val list4: List[String] = List("d", "4", "z")

我想将它们放在返回的组合/复合列表中: List(List("a","b","c","d"), List("1","2","3","4"), List("w","x","y","z"))

我尝试过使用foldand flatMaps,但我似乎无法完全理解如何实现它。如果有人也可以解释一个好的解决方案以便我学习,我将不胜感激。

标签: scala

解决方案


使用transpose

val list1 = List("a", "1", "w")
val list2 = List("b", "2", "x")
val list3 = List("c", "3", "y")
val list4 = List("d", "4", "z")

List(list1, list2, list3, list4).transpose
// List(List(a, b, c, d), List(1, 2, 3, 4), List(w, x, y, z))

推荐阅读