通过对相同键的值求和,在Julia中添加词典

Aun*_*ung 3 counter dictionary julia

a1a2朱莉娅有两本词典.

a1 = {"A"=>1, "B"=>2}
a2 = {"A"=>4, "B"=>1, "C"=>3}
Run Code Online (Sandbox Code Playgroud)

我想把它结合起来得到这个.

final={"A"=>5, "B"=>3, "C"=>3}
Run Code Online (Sandbox Code Playgroud)

在Python中,我将字典转换为集合计数器并将它们组合在一起.

Chi*_*olm 5

看看DataStructures.jl计数器.

julia> using DataStructures: counter

julia> a1 = Dict{ASCIIString, Int64}("A"=>1, "B"=>2)
Dict{ASCIIString,Int64} with 2 entries:
  "B" => 2
  "A" => 1

julia> a2 = Dict{ASCIIString, Int64}("A"=>4, "B"=>1, "C"=>3)
Dict{ASCIIString,Int64} with 3 entries:
  "B" => 1
  "A" => 4
  "C" => 3

julia> merge(counter(a1), counter(a2)).map
Dict{ASCIIString,Int64} with 3 entries:
  "B" => 3
  "A" => 5
  "C" => 3
Run Code Online (Sandbox Code Playgroud)


小智 5

对于现在查看此内容的任何人,counter不再需要 - 使用merge(+, a1, a2).

julia> a1 = Dict("A"=>1, "B"=>2)
Dict{String,Int64} with 2 entries:
  "B" => 2
  "A" => 1
julia> a2 = Dict("A"=>4, "B"=>1, "C"=>3)
Dict{String,Int64} with 3 entries:
  "B" => 1
  "A" => 4
  "C" => 3
julia> merge(+, a1, a2)
Dict{String,Int64} with 3 entries:
  "B" => 3
  "A" => 5
  "C" => 3
Run Code Online (Sandbox Code Playgroud)