我正在尝试将 python 脚本转换为 Julia。我正在检查以确保我以最佳方式执行此代码。请看以下代码:
julia> a = [1,2,3,4,5]
5-element Array{Int64,1}:
1
2
3
4
5
julia> if 1 in a
print("1 is in a")
end
1 is in a
julia> if 6 not in a
print("6 not in a")
end
ERROR: TypeError: non-boolean (Int64) used in boolean context
Stacktrace:
[1] top-level scope at REPL[6]:1
julia> push!(a, 6)
6-element Array{Int64,1}:
1
2
3
4
5
6
julia> if (6 in a) == true
print("6 in a")
end
6 not in a
julia> b = [1]
1-element Array{Int64,1}:
1
julia> if (6 in b) == true
print("6 in b")
end
Run Code Online (Sandbox Code Playgroud)
我是否正确地进行了“不在”检查?
Cam*_*nek 22
julia> a = [1, 2, 3, 4, 5];
julia> 6 ? a
true
Run Code Online (Sandbox Code Playgroud)
该?标志可以通过键入REPL键入\notin,然后按Tab。当然,?也可以in通过键入\in并按 TAB来替代该符号:
julia> 6 ? a
false
Run Code Online (Sandbox Code Playgroud)
有时您需要矢量化版本:
julia> x = [2, 7];
julia> x .? Ref(a)
2-element BitArray{1}:
0
1
Run Code Online (Sandbox Code Playgroud)
的Ref需要在该情况下,使a作为在广播操作的标量处理。
编辑:
正如@SalchiPapa 和@DNF 在评论中所指出的,!(6 in a)如果您希望避免使用 Unicode 字符,您可以这样做。
| 归档时间: |
|
| 查看次数: |
5030 次 |
| 最近记录: |