20

在 Julia 中查找数组中某个项目的第一个索引的最简单方法是什么?

4

2 回答 2

33

findfirst和更一般地说findnext,它允许你从你离开的地方重新开始。这两者的一个优点是您不需要分配输出数组,因此性能会更好(如果您关心的话)。

另外,请记住(与您可能习惯的其他一些语言不同)Julia 的循环速度很快,因此您始终可以自己编写这些简单的函数。要了解我的意思,请看一下findnext(in base/array.jl); 的实现;它没有什么“花哨”的地方,但是您获得的性能与您在 C 中实现它所获得的性能一样好。

于 2013-11-21T11:48:07.943 回答
2

您可以使用 ‍‍<code>findfirst,如下所示:

A = [1, 4, 2, 3, 2]

function myCondition(y)
    return 2 == y
end

println( findfirst(myCondition, A) )

# output: 3

您可以在此链接中阅读更多内容

于 2021-06-23T08:10:37.847 回答