如何将Vector{Vector{T}}转换成一个Vector{T}

#比如给定a
a = [[1,2],[4],[3,7,8]];
#想得到如下结果
b = [1,2,4,3,7,8];
#当然,下面方法可以得到,有没有更简便的方法呢
b=[]; for i in a push!(b, i...) end
julia> vcat(a...)
6-element Vector{Int64}:
 1
 2
 4
 3
 7
 8
3 个赞

一开始以为是vcat.(a)呢,完了各种尝试,把这个给忘了, :sleepy: ,谢谢

1 个赞

还有一个迭代器形式的方案 flatten:

using Base.Iterators: flatten

flatten(a)
julia> flatten(a) |> collect
6-element Array{Int64,1}:
 1
 2
 4
 3
 7
 8

julia> vcat(a...)
6-element Array{Int64,1}:
 1
 2
 4
 3
 7
 8
1 个赞