如何在Julia语言中使用集合运算

5

我想在Julia中像Python中一样使用set()。这是可能的吗?如果是,请使用以下Python代码提供一个示例:

set(A) - set(B)
2个回答

14

有关功能的解释在文档中。虽然可以继续使用-,但它已被弃用:

julia> A = [1,2,3]; B = [2,3,4];

julia> Set(A) - Set(B)
WARNING: a::Set - b::Set is deprecated, use setdiff(a,b) instead.
 in - at deprecated.jl:26
Set{Int32}({1})

julia> setdiff(A, B)
1-element Array{Int32,1}:
 1

julia> setdiff(Set(A), Set(B))
Set{Int32}({1})

请注意,我们可以直接在数组上使用类似于Set的操作,这样它们会保持原有的顺序。


1
你提供的 Julia 文档链接已经失效了。 正确的链接在这里:https://docs.julialang.org/en/v1/base/collections/index.html#Set-Like-Collections-1 - JKHA

0

您也可以使用筛选命令来完成此操作。这样,您将获得一个数组返回。

julia> A = [1; 2; 3]; B = [2; 3; 4; 5];
julia> filter(x -> !(x in A), B)
2-element Array{Int64,1}:
4
5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接