首页 > 解决方案 > 如何在 Julia 中将 Float 类型的数组转换为 Any?

问题描述

我想python like list在 Julia 中将数组转换为 a 。

要创建一个数组,type Any可以使用此语法初始化一个空数组array = []。但是,如果我想执行转换,即让我们将类型数组转换Array(Float64,1)为类型Any,那么正确的方法是什么?

或者如果有任何替代方法可以在 Julia 中创建列表?

我创建一个函数的方法,该函数接受一个数组并将其转换为任何类型:

function list(x)
    x = convert(Any, x)
    return x
end

x_test = [0.19, 0.03, 0.27]
t1 = typeof(x_test)
println("type of x_test is: $t1")
x_test = list(x_test)
t2 = typeof(x_test)
println("type of x_test is: $t2")

Output:
type of x_test is: Array{Float64,1}
type of x_test is: Array{Float64,1}

请提出实现此转换任务的方法或解决方案。

谢谢。

标签: listjulia

解决方案


你可以做:

julia> list(x) = Any[i for i ∈ x]
list (generic function with 1 method)

julia> list([0.19, 0.03, 0.25])
3-element Vector{Any}:
 0.19
 0.03
 0.25

但正如奥斯卡在他的评论中所说,你为什么要这样做呢?确实,Python 性能经常因为缺少类型信息而受到影响,这并不意味着如果你故意阻止编译器优化,Julia 就会变得“像 Python”(尽管在几乎所有情况下它都会变得慢很多!)


推荐阅读