gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:32:38 25 4
gpt4 key购买 nike

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

y=Array(Vector{Int64}, 10)

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

for i in 1:10
y[i]=sample(1:20, 5)
end

每个一维数组包括 5 个在 120 之间随机采样的整数。

现在我正在应用一个映射函数,其中对于 y 中的每个一维数组,排除从 120:

map(x->setdiff(1:20, x), y)

但是,我想确定当函数应用于 y[i] 时,如果 setdiff(1:20, y[i]) 的输出包括ii 被排除在结果之外。换句话说,我想要一个像

这样工作的函数
setdiff(deleteat!(Vector(1:20),i) ,y[i])

但使用 map

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

P.S,我知道如何用 comprehensions 来做,我想知道是否可以用 map 来做。

理解方式:

[setdiff(deleteat!(Vector(1:20), index), value) for (index,value) in enumerate(y)]

最佳答案

像这样?

map(x -> setdiff(deleteat!(Vector(1:20), x[1]),x[2]), enumerate(y))

对于你的例子给出了这个:

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

关于julia - 在 Julia 中使用 map 时如何知道迭代器的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40892724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com