List 如何在OCaml中打印列表列表的特定索引?
如何打印列表的特定索引和列表的特定索引List 如何在OCaml中打印列表列表的特定索引?,list,ocaml,List,Ocaml,如何打印列表的特定索引和列表的特定索引 [["Anne";"Brazil";"42";"\n"]; ["Bernard";"France";"34";"\n"]; ["Charlie";"USA";"65";"\n"]] 例如: 如果我想打印“巴西”,我
[["Anne";"Brazil";"42";"\n"];
["Bernard";"France";"34";"\n"];
["Charlie";"USA";"65";"\n"]]
例如:
如果我想打印“巴西”,我如何访问它的索引
谢谢大家!
干杯 你的问题不是很清楚。以下是一些观察结果 从索引的角度考虑OCaml列表不是一个好方法。OCaml列表实际上是列表——只在一个方向上访问,访问任何一个元素的时间都是线性的。它们实际上不是数组——对任何元素都有固定时间的访问。其他一些语言将这些结构视为相同的,但事实并非如此 您似乎想说的是,您是从一个已知的名称开始的,比如“巴西”,并且您希望使用该名称访问列表元素。更一般地说,您希望访问具有特定属性的列表元素 解决此一般问题的一个标准函数是
List.find
。您可以为它指定所需属性的布尔函数和列表。它返回元素,如果没有这样的元素,则引发异常
您可以按姓氏查找元素,如下所示:
let has_las_name n l =
match l with
| _ :: lname :: _ -> lname = n
| _ -> false
let brazil_element = List.find (has_last_name "Brazil") mylist
如果你想根据他们的索引访问元素,你应该考虑使用<代码>数组< /代码>参见:一个记录可能会更好。