我有:
keys = ["a", "b", "j"]
vals = [1, 42, 9]
我想要类似的东西:
somedic = ["a"=>1, "b"=>42, "j"=>9]
IE。
Dict{String,Int64} with 3 entries:
"j" => 9
"b" => 42
"a" => 1
但是怎么样??
最佳答案
像这样:
keys = ["a", "b", "j"]
vals = [1, 42, 9]
yourdic = Dict(zip(keys, vals))
返回的 Dict 类型为
Dict{String, Int}
(即 Dict{String, Int64}
在我的系统上),因为键是 String
的向量s 和 vals 是 Int
的向量s。如果您希望 Dict 具有较少的特定类型,例如
AbstractString
和 Real
, 你可以做:Dict{AbstractString, Real}(zip(keys, vals))
如果您在单个数组中有对:
dpairs = ["a", 1, "b", 42, "j", 9]
你可以做:
Dict(dpairs[i]=>dpairs[i+1] for i in 1:2:length(dpairs))
与上述相同的语法适用于获取不太具体的类型,例如:
Dict{Any, Number}(dpairs[i]=>dpairs[i+1] for i in 1:2:length(dpairs))
关于julia - 从键和值数组创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25896698/