如何在Julia中使用map时知道迭代器的索引

A.Y*_*iha 3 julia map-function

我有一个数组数组,称为y:

y=Array(Vector{Int64}, 10)
Run Code Online (Sandbox Code Playgroud)

它基本上是一维数组(其中10个)的列表,每个1维数组的长度为5.以下是它们如何初始化的示例:

for i in 1:10
    y[i]=sample(1:20, 5)
end
Run Code Online (Sandbox Code Playgroud)

每个一维阵列包括5点之间随机取样的整数120.

现在我施加的映射函数,其中对于每个在这些1维阵列的y,不包括从该数字120:

map(x->setdiff(1:20, x), y)
Run Code Online (Sandbox Code Playgroud)

不过,我想,以确保在应用的功能y[i],如果输出setdiff(1:20, y[i])包括i,i从结果中排除.换句话说,我想要一个像...一样的功能

setdiff(deleteat!(Vector(1:20),i) ,y[i])
Run Code Online (Sandbox Code Playgroud)

但随着map.

主要是我的问题是你是否可以访问map函数中的索引.

PS,我知道怎么做comprehensions,我想知道是否有可能用地图做.

理解方式:

[setdiff(deleteat!(Vector(1:20), index), value) for (index,value) in enumerate(y)]
Run Code Online (Sandbox Code Playgroud)

Ale*_*ley 6

像这样?

map(x -> setdiff(deleteat!(Vector(1:20), x[1]),x[2]), enumerate(y))
Run Code Online (Sandbox Code Playgroud)

对于你的例子给出这个:

[2,3,4,5,7,8,9,10,11,12,13,15,17,19,20]
[1,3,5,6,7,8,9,10,11, 13,16,17,18,20]
....
[1,2,4,7,8,10,11,12,13,14,15,16,17,18]
[1,2,3, 5,6,8,11,12,13,14,15,16,17,19,20]