gpt4 book ai didi

julia - 附加!比推!在 Julia

转载 作者:行者123 更新时间:2023-12-05 08:03:28 25 4
gpt4 key购买 nike

在 Julia 中,您可以使用 append!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

但是,append!push! 有什么区别? According to the official doc建议:

"Use push! to add individual items to a collection which are not already themselves in another collection. The resultof the preceding example is equivalent to push!([1, 2, 3], 4, 5, 6)."

这就是这两个函数的主要区别!但是,在上面的示例中,我使用 append! 将单个元素附加到现有矢量。那么,为什么他们建议在这些情况下使用 push!

最佳答案

append!(v, x) 将迭代 x,本质上是 push! x 的元素到 vpush!(v, x)会将x作为一个整体添加到v的末尾。在您的示例中没有区别,因为在 Julia 中您可以迭代一个数字(它的行为类似于长度为 1 的迭代器)。这是一个更好的例子来说明差异:

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

在此示例中,当使用 push! 时,xy 成为 v 的元素,但是当使用 append! xyelements 成为 v 的元素。

关于julia - 附加!比推!在 Julia ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72916749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com