我正在使用 Julia 1.63,我目前正在嘗試在回圈中創建字典。我可以從以下字典開始。
dict = Dict("A_1" => 1, "B_1" => 2, "X" => "A_1" => 1)
Dict{String, Any} with 3 entries:
"X" => "A_1"=>1
"B_1" => 2
"A_1" => 1
現在我想向“X”鍵添加鍵值對“B_2”=> 2
我嘗試了以下方法:
push!(dict["X"],Dict("B_2" => 2))
ERROR: MethodError: no method matching push!(::Pair{String, Int64}, ::Dict{String, Int64})
Closest candidates are:
push!(::Any, ::Any, ::Any) at abstractarray.jl:2387
push!(::Any, ::Any, ::Any, ::Any...) at abstractarray.jl:2388
push!(::AbstractChannel, ::Any) at channels.jl:10
push!(dict["X"],"B_2" => 2)
ERROR: MethodError: no method matching push!(::Pair{String, Int64}, ::Pair{String, Int64})
Closest candidates are:
push!(::Any, ::Any, ::Any) at abstractarray.jl:2387
push!(::Any, ::Any, ::Any, ::Any...) at abstractarray.jl:2388
push!(::AbstractChannel, ::Any) at channels.jl:10
令我困惑的一件事是,這在 dict 的上層有效。
push!(dict,"B_2" => 2)
Dict{String, Any} with 4 entries:
"B_2" => 2
"X" => "A_1"=>1
"B_1" => 2
"A_1" => 1
有什么明顯的我遺漏了嗎?謝謝你的幫助。
uj5u.com熱心網友回復:
問題是 的值"X"不是 a Dict,而是 a Pair。如果要將多個Pairs分配給一個鍵,則應Dict改用。您必須相應地對其進行初始化。
julia> dict = Dict("A_1" => 1, "B_1" => 2, "X" => Dict("A_1" => 1))
Dict{String, Any} with 3 entries:
"X" => Dict("A_1"=>1)
"B_1" => 2
"A_1" => 1
julia> push!(dict["X"],"B_2" => 2)
Dict{String, Int64} with 2 entries:
"B_2" => 2
"A_1" => 1
julia> dict
Dict{String, Any} with 3 entries:
"X" => Dict("B_2"=>2, "A_1"=>1)
"B_1" => 2
"A_1" => 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/347773.html
上一篇:從嵌套字典中獲取非等于值
