我正在尝试创建一个嵌套在字典中的列表并向其附加值。在 python 中,我会写以下内容:
samples = {'x' : [1], 'y' : [-1]}
并在 for 循环中附加值:
samples['x'].append(new_value)
我怎样才能在 Julia 中实现等价的东西?
答案 0 :(得分:5)
这是:
julia> samples = Dict("x" => [1], "y" => [-1])
Dict{String, Vector{Int64}} with 2 entries:
"x" => [1]
"y" => [-1]
julia> push!(samples["x"],4);
julia> samples
Dict{String, Vector{Int64}} with 2 entries:
"x" => [1, 4]
"y" => [-1]
也许在 Julia 中,人们会将 Symbol
s 视为键而不是 String
s,因此它可能是 samples = Dict(:x => [1], :y => [-1])
最后,如果您知道键只有 x
和 y
,您将使用 NamedTuple
:
julia> samples2 = (x = [1], y = [-1])
(x = [1], y = [-1])
julia> typeof(samples2)
NamedTuple{(:x, :y), Tuple{Vector{Int64}, Vector{Int64}}}
julia> push!(samples2.x, 111);
julia> samples2
(x = [1, 111], y = [-1])