当我在 Julia 中遍历嵌套的 Dict 时,它给出了这个错误:

ERROR: access to undefined reference
 in next at dict.jl:567

这是您可以重现此错误的代码:
a = [0,19620,7291,32633,9,32513,42455,10045,31964,42455,11767,54]
b = [14318,16405,19,18913,19,8141,18958,12336,7,16588,17358,30]
d = Dict()
for aa in a
   for bb in b
     if ! haskey(d,aa)
        d[aa]=Dict()
     end
     d[aa][bb] = 0.5
   end
end
for k1 in keys(d)
   s =0.0
   for k2 in keys(d[k1])
     s+= d[k1][k2]
   end
   for k2 in keys(d[k1])
     d[k1][k2] = d[k1][k2] / s
   end
end

它是有线的,如果 a = [0,1] b = [0,1],它工作正常。

- - 更新 - - -

实际上,只要数组 b 有 11 个不同的元素,就会发生错误。
另外,如果
d[k1][k2] = d[k1][k2] / s

变得
d[k1][k2] = d[k1][k2] * s

或任何其他操作,错误消失。

有任何想法吗 ?

最佳答案

此问题现已在开发分支中修复,并且将在预发布版本更新后立即可用。

参见:https://github.com/JuliaLang/julia/pull/5894/files

关于dictionary - 在 Julia-lang 中遍历嵌套的 Dict,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21926255/

10-11 21:44