[英]How to print specific index a list of lists in OCaml?
如何打印列表和列表列表的特定索引?
[["Anne";"Brazil";"42";"\n"];
["Bernard";"France";"34";"\n"];
["Charlie";"USA";"65";"\n"]]
示例:如果我想打印“巴西”,我该如何访问它的索引?
谢谢!
干杯!
你的问题不是很清楚。 以下是一些观察。
根据索引考虑 OCaml 列表并不是一个好方法。 OCaml 列表确实是列表——仅在一个方向上访问,访问任何一个元素都有线性时间。 它们实际上不是数组——对任何元素都有恒定的时间访问。 其他一些语言将这些结构视为相同,但事实并非如此。
您似乎在说的是您以“巴西”之类的已知名称开头,并且您希望使用该名称访问列表元素。 更一般地说,您希望访问具有某些属性的列表元素。
针对这个一般问题的一个标准 function 是List.find
。 你给它一个 boolean function 以获得所需的属性和一个列表。 如果没有这样的元素,它会返回元素或引发异常。
您可以按姓氏查找元素,如下所示:
let has_las_name n l =
match l with
| _ :: lname :: _ -> lname = n
| _ -> false
let brazil_element = List.find (has_last_name "Brazil") mylist
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.