有啥可以在 Erlang 中执行两个列表的联合吗?
Posted
技术标签:
【中文标题】有啥可以在 Erlang 中执行两个列表的联合吗?【英文标题】:Is there anything to perform union of two lists in Erlang?有什么可以在 Erlang 中执行两个列表的联合吗? 【发布时间】:2021-02-26 18:56:03 【问题描述】:我发现Erlang中有集合的集合操作,但是我找不到列表的类似操作。我想在 Erlang 的列表中执行基本的联合操作:
A = [1, 2, 3]
B = [1, 2, 5]
C = A union B = [1, 2, 3, 5]
如何在 Erlang 中执行此操作?
不过,我使用集合执行了以下操作,并且它有效。我只是想知道,我是否可以在没有集合的情况下做到这一点。
C = sets:to_list(sets:union(sets:from_list(A),sets:from_list(B))).
【问题讨论】:
【参考方案1】:ordsets
模块将有序列表作为集合处理,使用与sets
模块相同的 API。 https://erlang.org/doc/man/ordsets.html
【讨论】:
【参考方案2】:您可以连接两个列表,然后对它们进行排序,删除重复项:
A = [1, 2, 3],
B = [1, 2, 5],
C = lists:usort(A ++ B).
【讨论】:
谢谢,太好了!!以上是关于有啥可以在 Erlang 中执行两个列表的联合吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 Erlang shell 中禁用将小整数打印为字符串的列表吗?