从 Ocaml 中的列表列表中删除重复项?

     2023-03-15     171

关键词:

【中文标题】从 Ocaml 中的列表列表中删除重复项?【英文标题】:Removing duplicates from a list of lists in Ocaml? 【发布时间】:2021-07-01 20:24:42 【问题描述】:

我是 Ocaml 的新手,我被分配仅使用 List 模块删除列表列表的所有重复项。这是我写的代码:

let sort_and_remove_duplicates l = 
  let sl = List.sort compare l in
  let rec go l acc = match l with
    | [] -> List.rev acc
    | [x] -> List.rev (x::acc) 
    | (x1::x2::xs) -> 
      if x1 = x2
      then go (x2::xs) acc
      else go (x2::xs) (x1::acc)
  in go sl []

这会通过空列表的情况,但对于其他情况则失败,例如:

[[3;1;3]; [4]; [1;2;3]] 

我做错了什么?

【问题讨论】:

列表列表的重复是什么意思? 【参考方案1】:

这是我在你所谓的失败案例上运行你的代码时得到的结果:

# sort_and_remove_duplicates [[3;1;3]; [4]; [1;2;3]];;
- : int list list = [[1; 2; 3]; [3; 1; 3]; [4]]

这对我来说似乎是正确的答案。输入列表中没有重复项,因此输出列表是相同的(排序除外)。

您对此输入的期望是什么?

(作为旁注,您的代码看起来非常好,至少对于我认为它应该做的事情。)

【讨论】:

从 Javascript 中的排序列表中删除重复项

】从Javascript中的排序列表中删除重复项【英文标题】:RemoveDuplicatesfromSortedListinJavascript【发布时间】:2021-12-3118:58:39【问题描述】:给定排序链表的头部,删除所有重复项,使每个元素只出现一次。返回排序好的链表。输入:he... 查看详情

从Python中的嵌套列表中删除连续的重复项?

】从Python中的嵌套列表中删除连续的重复项?【英文标题】:RemoveconsecutiveduplicatesfromnestedlistinPython?【发布时间】:2020-05-0823:33:49【问题描述】:我有一个嵌套列表,其结构如下:mylist=[[\'A\',\'Car\',\'15\'],[\'A\',\'Car\',\'15\'],[\'A\',\'P... 查看详情

使用 Python 删除对象列表中的重复项

】使用Python删除对象列表中的重复项【英文标题】:RemoveduplicatesinlistofobjectwithPython【发布时间】:2011-05-0907:53:13【问题描述】:我有一个对象列表,我有一个充满记录的数据库表。我的对象列表具有标题属性,我想从列表中删... 查看详情

如何从Java列表中删除重复项

...:38:04【问题描述】:我有一组列表,我想从无论每个列表中的元素顺序如何删除重复项,如下所示:我有这个作为输入[[-1,-1,2],[0,-1,1],[1,-1,0],[2,-1,-1],[-1,2,-1],[-1,1,0],[0,1,-1],[-1,0,1],[1,0,- 查看详情

从 Vue 中的 v-for 列表中删除重复项

】从Vue中的v-for列表中删除重复项【英文标题】:Removingduplicatesfromav-forlistinVue【发布时间】:2020-10-1022:42:12【问题描述】:我正在尝试按类别对我的笔记列表进行排序。我在一个类别中有多个笔记,所以v-for在列表中多次返回分... 查看详情

如何从列表 Dart 中删除重复项 |扑

...ers!];和这个print(users.toSet().toList());。但两者都在打印列表中的所有数据。它没有删除重复的值。以下是我的清 查看详情

从列表中删除(并计算)重复项

...同一个列表的两个迭代器之间进行迭代并删除嵌套迭代器中的一个项目?版本1(不起作用):vari=all.iterator();while(i.hasNext())vara=i.next();varj=all.iterator();while(j.hasN 查看详情

从 Java 中的多个列表中合并和删除重复项的最佳方法

】从Java中的多个列表中合并和删除重复项的最佳方法【英文标题】:BestwaytomergeandremoveduplicatesfrommultiplelistsinJava【发布时间】:2013-05-0310:13:28【问题描述】:我有一种情况,我将收到2+ArrayList<Widget>并且我需要能够合并... 查看详情

从 Python 列表中删除重复项

】从Python列表中删除重复项【英文标题】:RemovingduplicatesfromlistoflistsinPython【发布时间】:2009-07-1713:45:48【问题描述】:如果想根据每个嵌套列表的第一个元素评估重复项,谁能提出一个从嵌套列表中删除重复项的好解决方案?... 查看详情

如何使用列表理解从列表中删除重复项? [复制]

】如何使用列表理解从列表中删除重复项?[复制]【英文标题】:Howtoremoveduplicateitemsfromalistusinglistcomprehension?[duplicate]【发布时间】:2012-05-1922:21:07【问题描述】:如何使用列表推导从列表中删除重复项?我有以下代码:a=[1,2,3,3,... 查看详情

如何通过 Oracle 中的 regexp_replace 从逗号分隔列表中删除重复项?

】如何通过Oracle中的regexp_replace从逗号分隔列表中删除重复项?【英文标题】:Howtoremoveduplicatesfromcommaseparatedlistbyregexp_replaceinOracle?【发布时间】:2016-10-2607:38:39【问题描述】:我有POW,POW,POWPRO,PRO,PRO,PROUTL,TNEUTL,TNEUTL,UTL,UTLTNE,UTL,UTL... 查看详情

如何使用 Dart / Flutter 中的列表从列表中删除重复元素?

】如何使用Dart/Flutter中的列表从列表中删除重复元素?【英文标题】:HowtoremoveduplicateelementsfromalistusinglistsinDart/Flutter?【发布时间】:2020-12-1401:07:52【问题描述】:如何从Dart/Flutter中的列表中删除重复项?.toSet().toList()不起作用... 查看详情

如何从我的列表中删除重复项? [复制]

】如何从我的列表中删除重复项?[复制]【英文标题】:HowcanIremoveduplicatesfrommylist?[duplicate]【发布时间】:2021-06-3014:16:05【问题描述】:我正在使用SwiftUI在视图中生成这个动态列表(显示生成列表的一部分):薰衣草柠檬石灰石... 查看详情

java示例代码_从列表中删除重复项

java示例代码_从列表中删除重复项 查看详情

如何通过 Oracle 中的正则表达式从逗号分隔列表中删除重复项,但我不想要重复值? [复制]

】如何通过Oracle中的正则表达式从逗号分隔列表中删除重复项,但我不想要重复值?[复制]【英文标题】:HowtoremoveduplicatesfromcommaseparatedlistbyregexinOraclebutIdon\'twantduplicatesvalues?[duplicate]【发布时间】:2018-08-0703:08:33【问题描述】:... 查看详情

删除列表中的重复项

】删除列表中的重复项【英文标题】:Removingduplicatesinlists【发布时间】:2011-12-1904:02:39【问题描述】:我几乎需要编写一个程序来检查列表是否有任何重复项,如果有,它会删除它们并返回一个新列表,其中包含未重复/删除的... 查看详情

从dart列表中删除重复项的2种方法(代码片段)

本文向您展示了从Flutter中的列表中删除重复项的2种方法。第一个适用于原始数据类型列表。第二个稍微复杂一些,但适用于map****列表或对象列表。转换为Set然后反转为List这是一个简单列表的简单快速的解决方案。例子࿱... 查看详情

如何有效地删除列表列表中的连续重复项?

】如何有效地删除列表列表中的连续重复项?【英文标题】:Howtodeleteconsecutiveduplicatesinalistoflistsefficiently?【发布时间】:2019-08-1305:12:27【问题描述】:我有一个嵌套列表:l=[[\'GILTI\',\'was\',\'intended\',\'to\',\'to\',\'stifle\',\'multinationa... 查看详情