空数组的 Julia 数组

Julia array of empty arrays

抱歉愚蠢的简单问题,Julia 的新手:

我想像这样初始化数组:

folds = [[], [], [], [], [], [], [], []],但不是手动。

在Python我就写

folds = [[]] * 8,但这不适用于 Julia。

Julia 怎么可能做到这一点?我尝试了几次,但现在成功了。 能不能也解释一下解决办法。

谢谢。

一种方法是列表理解(尽管这当然不像 Python 那样简洁):

[[] for i=1:8]

Julia 中 folds = [[]] * 8 的等价物(这可能不是您想要的!)是

folds = fill([], 8)

查看

的结果
push!(folds[1], 1)
8-element Array{Array{Any,1},1}:
 Any[1]
 Any[1]
 Any[1]
 Any[1]
 Any[1]
 Any[1]
 Any[1]
 Any[1]

folds[1].append(1)
# [[1], [1], [1], [1], [1], [1], [1], [1]]

另一方面,像 [[] for i = 1:8] 这样的理解将在 Julia 中创建独立的数组,在 python 中类似。