使用 julia 进行条件评估的数组或集合

mic*_*tiz 3 python arrays if-statement julia

我是朱莉娅的新人。我在徘徊是否可以在一行中编写if数组中的语句或 Julia 中的集合。

例如在python中我可以写一个列表,如

s = [1 if np.random.uniform() < 0.5 else 0 for i in range(10)]
Run Code Online (Sandbox Code Playgroud)

在 Julia 中,如果我是对的,应该是这样的数组

s = []
for i in 0:10
  if rand()<0.5
    push!(s, 1)
  else
    push!(s, 0)
  end
end 
Run Code Online (Sandbox Code Playgroud)

我知道我可以for在一行中写出循环,即

s =[1 for i in 1:10]
Run Code Online (Sandbox Code Playgroud)

但是if..else声明呢?

Gni*_*muc 5

正如@Guido 建议的那样,您可以像 python 一样使用列表理解,更具体地说:

s = [if rand() < 0.5 1 else 0 end for i in 1:10]
Run Code Online (Sandbox Code Playgroud)

请注意,julia 的 if-else 语句需要一个end. 我认为这与使用相同map

map(x -> rand() < 0.5 ? 1 : 0, 1:10)
Run Code Online (Sandbox Code Playgroud)