append!在 Julia 中,您可以使用或将元素永久附加到现有向量push!。例如:
julia> vec = [1,2,3]
3-element Vector{Int64}:
1
2
3
julia> push!(vec, 4,5)
5-element Vector{Int64}:
1
2
3
4
5
# or
julia> append!(vec, 4,5)
7-element Vector{Int64}:
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
append!但是,和 之间有什么区别push!?根据官方文档,建议:
“使用push!将单个项目添加到一个集合中,而这些项目本身并不在另一个集合中。前面示例的结果相当于push!([1,2,3],4,5,6)。”
这就是这两个函数之间的主要区别!但是,在上面的示例中,我使用 . 将各个元素附加到现有向量中append!。那么为什么他们建议push!在这些情况下使用呢?
append!(v, x)将迭代x,本质上是topush!的元素。将作为一个整体并将其添加到 的末尾。在您的示例中没有区别,因为在 Julia 中您可以迭代一个数字(它的行为类似于长度为 1 的迭代器)。这是一个更好的例子来说明差异:xvpush!(v, x)xv
julia> v = Any[]; # Intentionally using Any just to show the difference
julia> x = [1, 2, 3]; y = [4, 5, 6];
julia> push!(v, x, y);
julia> append!(v, x, y);
julia> v
8-element Vector{Any}:
[1, 2, 3]
[4, 5, 6]
1
2
3
4
5
6
Run Code Online (Sandbox Code Playgroud)
在此示例中,当使用push!、x和 时,y将成为 的元素v,而当使用和的append!元素时,将成为 的元素。xyv