我想合并值为字典的字典

and*_*dro 4 julia

我也有两个键和值的字典作为字典。我正在尝试以将值附加在键中的方式合并这些字典。

Dict{String, Dict{String, String}} with 10 entries:
  "8"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "4"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "1"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "24" => Dict("textAlign"=>"left !important")
  "5"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "2"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "6"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "7"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "9"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "3"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
Run Code Online (Sandbox Code Playgroud)
Dict{String, Dict{String, String}} with 2 entries:
  "2" => Dict("min-width"=>"58px !important", "max-width"=>"58px !important")
  "3" => Dict("min-width"=>"58px !important", "max-width"=>"58px !important")
Run Code Online (Sandbox Code Playgroud)

我想以附加相同键的值的方式合并这些字典。

Dict{String, Dict{String, String}} with 10 entries:
  "8"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "4"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "1"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "24" => Dict("textAlign"=>"left !important")
  "5"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "2"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important", "min-width"=>"58px !important", "max-width"=>"58px !important")
  "6"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "7"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "9"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important")
  "3"  => Dict("white-space"=>"nowrap", "text-align"=>"left !important", "min-width"=>"58px !important", "max-width"=>"58px !important")
Run Code Online (Sandbox Code Playgroud)

Bog*_*ski 5

这是你想要的吗?

julia> d1 = Dict(i => Dict(1 => i) for i in 1:3)
Dict{Int64, Dict{Int64, Int64}} with 3 entries:
  2 => Dict(1=>2)
  3 => Dict(1=>3)
  1 => Dict(1=>1)

julia> d2 = Dict(i => Dict(2 => -i) for i in 2:4)
Dict{Int64, Dict{Int64, Int64}} with 3 entries:
  4 => Dict(2=>-4)
  2 => Dict(2=>-2)
  3 => Dict(2=>-3)

julia> mergewith(merge, d1, d2)
Dict{Int64, Dict{Int64, Int64}} with 4 entries:
  4 => Dict(2=>-4)
  2 => Dict(2=>-2, 1=>2)
  3 => Dict(2=>-3, 1=>3)
  1 => Dict(1=>1)
Run Code Online (Sandbox Code Playgroud)

(但请注意,如果内部字典具有相同的键,它将默默地使用其中一个值)