过滤掉元组向量的某些元素
Filtering out some element of a vector of tuples
我有一个非常大的元组向量,需要根据某些条件(条件)提取其中的一些。
也就是说,如果元组的第一个和第二个元素属于我们要保存的其他向量,否则不保存。例如,考虑以下我们有两个向量的向量(即开始和有效)
my_tuple = [(1, 2), (1, 3), (1, 5), (2, 3), (3, 4), (3, 5), (4, 1), (4, 5), (5, 2)]
starts = [[2, 8, 3, 4] , [1,2]]
valid = [ [2,3,6,8], [1,3,4,5] ]
我怎样才能只在 my_links
中包含那些 i
属于 start
而 j
属于有效的元组?
所需的输出应该是一个元组向量,如下所示:
my_tuple = [(1, 2), (1, 3), (1, 5), (2, 3), (3, 4), (3, 5), (4, 1), (4, 5), (5, 2)]
starts = [[2, 8, 3, 4] , [1,2]]
valid = [ [2,3,6,8], [1,3,4,5] ]
##############Would like an OTUPUT like:
[ [(2,3)], [(1,3) , (1,5), (2,3)] ]
基本上,我要过滤的是在起始向量和有效向量中遍历每对向量(在本例中我们必须配对[2, 8, 3, 4] and [2,3,6,8] -- [1,2] and [1,3,4,5]
),然后将它们组合起来my_tuples
中的元组
我试过发出这些命令,但没有用,你有什么建议?
new_tuple = [(i,j) for (i,j) in my_links if ( i in starts && j in valid) ]
new_tuple = [(i,j) for (i,j) in my_links if ( i in starts , j in valid) ]
这是你想要的吗?
julia> [filter(t -> t[1] in starts[i] && t[2] in valid[i], my_tuple) for i in eachindex(starts, valid)]
2-element Vector{Vector{Tuple{Int64, Int64}}}:
[(2, 3)]
[(1, 3), (1, 5), (2, 3)]
我有一个非常大的元组向量,需要根据某些条件(条件)提取其中的一些。
也就是说,如果元组的第一个和第二个元素属于我们要保存的其他向量,否则不保存。例如,考虑以下我们有两个向量的向量(即开始和有效)
my_tuple = [(1, 2), (1, 3), (1, 5), (2, 3), (3, 4), (3, 5), (4, 1), (4, 5), (5, 2)]
starts = [[2, 8, 3, 4] , [1,2]]
valid = [ [2,3,6,8], [1,3,4,5] ]
我怎样才能只在 my_links
中包含那些 i
属于 start
而 j
属于有效的元组?
所需的输出应该是一个元组向量,如下所示:
my_tuple = [(1, 2), (1, 3), (1, 5), (2, 3), (3, 4), (3, 5), (4, 1), (4, 5), (5, 2)]
starts = [[2, 8, 3, 4] , [1,2]]
valid = [ [2,3,6,8], [1,3,4,5] ]
##############Would like an OTUPUT like:
[ [(2,3)], [(1,3) , (1,5), (2,3)] ]
基本上,我要过滤的是在起始向量和有效向量中遍历每对向量(在本例中我们必须配对[2, 8, 3, 4] and [2,3,6,8] -- [1,2] and [1,3,4,5]
),然后将它们组合起来my_tuples
我试过发出这些命令,但没有用,你有什么建议?
new_tuple = [(i,j) for (i,j) in my_links if ( i in starts && j in valid) ]
new_tuple = [(i,j) for (i,j) in my_links if ( i in starts , j in valid) ]
这是你想要的吗?
julia> [filter(t -> t[1] in starts[i] && t[2] in valid[i], my_tuple) for i in eachindex(starts, valid)]
2-element Vector{Vector{Tuple{Int64, Int64}}}:
[(2, 3)]
[(1, 3), (1, 5), (2, 3)]