scala - 如何将四个列表组合成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"))
我尝试过使用fold
and flatMap
s,但我似乎无法完全理解如何实现它。如果有人也可以解释一个好的解决方案以便我学习,我将不胜感激。
解决方案
使用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))
推荐阅读
- php - 如何制作带有目录(字典)的通用表?
- phpmyadmin - 在 PHPMyAdmin 中创建事件以每小时插入一个用户
- javascript - RxJS webSocket 动态 URL
- sql - 如果没有结果,SQL Server 函数返回一个值或 NULL
- java - 我的二维数组充满了零而不是随机数
- java - 为 ListObjectClass 中的每个对象创建 ID
- python - 如何让多处理运行?
- git - 如果文件是在使用 squash 的 rebase 中添加和删除的,git 会从索引和历史记录中永久删除文件吗?
- python - 防止 WebSocket 请求添加默认标头
- xml - 来自 XML 和 XSL 输入的 XML 输出包含合并到一条记录中的所有数据