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],["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

最新更新