如何将值附加到嵌套字典?

时间:2021-03-09 01:11:35

标签: julia

我正在尝试创建一个嵌套在字典中的列表并向其附加值。在 python 中,我会写以下内容:

samples = {'x' : [1], 'y' : [-1]}

并在 for 循环中附加值:

samples['x'].append(new_value)

我怎样才能在 Julia 中实现等价的东西?

1 个答案:

答案 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 中,人们会将 Symbols 视为键而不是 Strings,因此它可能是 samples = Dict(:x => [1], :y => [-1])

最后,如果您知道键只有 xy,您将使用 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])