如何在 OCaml 中打印特定索引列表列表?

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 列表确实是列表——只能在一个方向上访问,访问任何一个元素的时间都是线性的。它们实际上不是数组——可以恒定时间访问任何元素。其他一些语言将这些结构视为相同,但实际上并非如此。

您的意思似乎是您以已知名称(例如“巴西”)开头,并且您想要访问具有该名称的列表元素。更一般地说,您想访问具有特定属性的列表的元素。

这个一般问题的一个标准函数是List.find。您为所需的 属性 和列表提供布尔函数。它 returns 元素或如果没有这样的元素则引发异常。

您可以按姓氏查找元素,如下所示:

let has_las_name n l =
    match l with
    | _ :: lname :: _ -> lname = n
    | _ -> false

let brazil_element = List.find (has_last_name "Brazil") mylist