我有两个列表,A和B,B是A的子列表。A和B中的元素都是随机排序的。我正在寻找一种方法来查找 B 中元素的 A 中元素索引,可能是有序的。在Python中,以下内容似乎有效
B_list = sorted([A.index(i) for i in B])
Run Code Online (Sandbox Code Playgroud)
我不确定在 Julia 中如何实现这一点。我对这门语言很陌生。我尝试过类似的东西
B_list = sort(filter(in(B), A))
Run Code Online (Sandbox Code Playgroud)
完全没有效果,请帮忙!
有一个函数(受 MATLAB 启发)可以直接为您完成此操作:indexin(B, A)
julia> a = ['a', 'b', 'c', 'b', 'd', 'a'];
julia> b = ['a', 'b', 'c'];
julia> indexin(b, a)
3-element Vector{Union{Nothing, Int64}}:
1
2
3
Run Code Online (Sandbox Code Playgroud)
如果您想要对索引进行排序,您可以对其进行排序:
julia> b = ['b', 'a', 'c'];
julia> indexin(b, a)
3-element Vector{Union{Nothing, Int64}}:
2
1
3
julia> indexin(b, a) |> sort
3-element Vector{Union{Nothing, Int64}}:
1
2
3
Run Code Online (Sandbox Code Playgroud)