list - 如何从列表列表中的两个索引创建一个元组?
问题描述
我目前有一个列表,其中包含其他列表。[ [1, 2, 3]; [9, 8, 7];...]
我想从我存储在整个列表中的这三个元素列表之一中的两个索引创建一个元组列表。
我写了类似的东西
let makeTuple list =
let rec tuple list tuplesList =
match list with
| [] -> ()
| h::t -> (tuple t ( (List.item 2 list, List.item 5 list)::tuplesList))
tuple list []
当我运行这个函数时,它给我一个错误,指出索引超出范围。我尝试了其他选项,但我似乎无法理解其中任何一个。我是 F-sharp 的新手:-S。任何提示都会很棒。
解决方案
目前还不是 100% 清楚您期望的输出。但是这个版本至少会运行并返回一个元组列表,所以它可能接近你想要的。
let makeTuple list =
let rec tuple list tuplesList =
match list with
| [] -> tuplesList
| h::t -> (tuple t ( (List.item 0 h, List.item 2 h)::tuplesList))
tuple list []
let lst = [ [1; 2; 3]; [9; 8; 7]; [14; 15; 16]]
lst |> makeTuple
输出:
val makeTuple : list:'a list list -> ('a * 'a) list
val lst : int list list = [[1; 2; 3]; [9; 8; 7]; [14; 15; 16]]
val it : (int * int) list = [(14, 16); (9, 7); (1, 3)]
推荐阅读
- php - 重叠 htaccess 命令?
- javascript - 在 reactjs 事件处理中传递 {SomeFunction} 和 {SomeFunction()} 的区别
- python - 使用 @dataclass 创建的类中的 Python 实例属性分配
- node.js - 容器化区块链微服务
- ruby-on-rails - 在*不同*控制器的方法之间传递参数
- php - Laravel excel 保存在存储目录中,而不是作为我的图像保存在存储上传中
- python - Python ldap3 日期时间
- python - 当函数的 __qualname__ 在 python 中更改时会发生什么?
- firebase - 病毒扫描 Firebase 存储文件
- uwp - 签名的桌面桥应用程序收到“不受信任”的提升提示