附加!将字符串切割成字符,推!没有[朱莉娅]
append! cuts strings into characters, push! doesn't [Julia]
Objective:
我需要一个像 (Float, string, int, string, int, string, int, ...) 这样的元组。
由于我在程序过程中计算条目,因此我首先将它们添加到 array/vector.
尝试:
my_array = []
append!(my_array, 0.1)
append!(my_array, "ab")
append!(my_array, 2)
println(tuple(my_array...))
# Bad output
(0.1, 'a', 'b', 2)
问题:
我怎样才能得到
# Good output
(0.1, "ab", 2)
代替?
问题不在于元组构造,而是对 append!
的表面误解:
julia> append!(my_array, 0.1)
1-element Vector{Any}:
0.1
julia> append!(my_array, "ab")
3-element Vector{Any}:
0.1
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)
append!
将任何可迭代的元素(包含标量数)单独附加到数组。字符串是字符的迭代。
而是使用 push!
:
julia> my_array2 = []
Any[]
julia> push!(my_array2, 0.1)
1-element Vector{Any}:
0.1
julia> push!(my_array2, "ab")
2-element Vector{Any}:
0.1
"ab"
julia> push!(my_array2, 2)
3-element Vector{Any}:
0.1
"ab"
2
julia> Tuple(my_array2)
(0.1, "ab", 2)
(不幸的是,这与 Python 中的 append
和 extend
不一致......但你已经习惯了。)
Objective:
我需要一个像 (Float, string, int, string, int, string, int, ...) 这样的元组。
由于我在程序过程中计算条目,因此我首先将它们添加到 array/vector.
尝试:
my_array = []
append!(my_array, 0.1)
append!(my_array, "ab")
append!(my_array, 2)
println(tuple(my_array...))
# Bad output
(0.1, 'a', 'b', 2)
问题:
我怎样才能得到
# Good output
(0.1, "ab", 2)
代替?
问题不在于元组构造,而是对 append!
的表面误解:
julia> append!(my_array, 0.1)
1-element Vector{Any}:
0.1
julia> append!(my_array, "ab")
3-element Vector{Any}:
0.1
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)
append!
将任何可迭代的元素(包含标量数)单独附加到数组。字符串是字符的迭代。
而是使用 push!
:
julia> my_array2 = []
Any[]
julia> push!(my_array2, 0.1)
1-element Vector{Any}:
0.1
julia> push!(my_array2, "ab")
2-element Vector{Any}:
0.1
"ab"
julia> push!(my_array2, 2)
3-element Vector{Any}:
0.1
"ab"
2
julia> Tuple(my_array2)
(0.1, "ab", 2)
(不幸的是,这与 Python 中的 append
和 extend
不一致......但你已经习惯了。)