朱莉娅的条件理解

2Cu*_*bed 9 python if-statement list-comprehension filter julia

在Python中,可以选择为是否在理解中包含特定项目提供条件.

[x**2 for x in range(10) if x > 5]
# [36, 49, 64, 81]
Run Code Online (Sandbox Code Playgroud)

有条件地使用函数是可能的,但我还没有找到一种完全排除值的方法,除了filter!它们在理解之外.

l = collect(0:9)
filter!(x -> x > 5, l)
l = [x^2 for x in l]  # alternatively, map!(x -> x^2, l)
# [36, 49, 64, 81]
Run Code Online (Sandbox Code Playgroud)

朱莉娅有可能吗?

Tas*_*nou 18

有可能在最新的朱莉娅.

julia> [x^2 for x in 0:9 if x > 5]
4-element Array{Int64,1}:
 36
 49
 64
 81
Run Code Online (Sandbox Code Playgroud)

否则,是的,如果你使用的是前0.5,你会被困在:

[x^2 for x in filter((x) -> x > 5, 0:9)]
Run Code Online (Sandbox Code Playgroud)

  • 确实.IMO 0.5目前具有良好的稳定性/功能平衡,所以如果我是你@ 2Cubed,我会选择 (2认同)