如何在 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
如何打印列表和列表列表的特定索引?
[["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