Dictionary julia double用于循环,在字典上循环

Dictionary julia double用于循环,在字典上循环,dictionary,julia,Dictionary,Julia,我刚刚开始使用Julia。据我所知,Julia允许您在一行上声明多个for循环 例如,这: for i = 1:2, j = [-1,-2] println((i, j)) end 这将导致: (1,-1) (1,-2) (2,-1) (2,-2) 我现在也在做类似的事情,不过是在翻字典的时候。本人声明如下: rename = function(x) x["num"] = -x["num"] x end players1 = [["num" => 1],["n

我刚刚开始使用Julia。据我所知,Julia允许您在一行上声明多个for循环

例如,这:

for i = 1:2, j = [-1,-2]
    println((i, j))
end
这将导致:

(1,-1)
(1,-2)
(2,-1)
(2,-2)
我现在也在做类似的事情,不过是在翻字典的时候。本人声明如下:

rename = function(x)
    x["num"] = -x["num"]
    x
end

players1 = [["num" => 1],["num" => 2]]
players2 = map(rename, copy(players1)) # = [["num" => -1],["num" => -2]]
奇怪的是,对我来说,当我这样做的时候:

for i=players1, j=players2
    println(i, j)
end
为什么我不能得到这个输出

["num"=>1]["num"=>-1]
["num"=>1]["num"=>-2]
["num"=>2]["num"=>-1]
["num"=>2]["num"=>-2] 

啊。在这种情况下,
map
功能仍然需要
deepcopy

这段代码似乎确实有效

rename = function(x)
    x["num"] = -x["num"]
    x
end

players1 = [["num" => 1],["num" => 2]]
players2 = map(rename, deepcopy(players1))

for i=players1, j=players2
    println(i, j)
end