您的位置:首页 > 理论基础 > 数据结构算法

Julia:关于push 与 Array 和Dict 数据结构

2014-07-28 17:07 330 查看
一、Array相差一个[],差异巨大!

julia> t1= Array{String,1} #不能用push!

Array{String,1}

julia> typeof(t1)

DataType

julia> t2= Array{String,1}[] #可以push!(t2,["aaa"])

0-element Array{Array{String,1},1}

julia> typeof(t2)

Array{Array{String,1},1}

julia> ts =String[] # 可以push!(ts,"aaa")

0-element Array{String,1}

二、Dict() 的初始化

首先要,提一下,Dict()的初始化问题,这个很容易搞错。

julia> a=Dict{Int,Int}()

Dict{Int64,Int64}()

julia> b= (Int=>Int)[]

Dict{Int64,Int64}()

# 变种1

julia> c=(Int=>Dict{Int, Int})[ ]

Dict{Int64,Dict{Int64,Int64}}()

# 变种2

julia> d=Dict{Int64,Dict{Int64,Int64}}()

Dict{Int64,Dict{Int64,Int64}}()

注意:

# [] 表示一个空字典数据结构,此时用push!会有问题!要换成()

julia> dd =Dict{String,Array{String,1}}[] 0-element Array{Dict{String,Array{String,1}},1}

julia> push!(dd,"aa",[AA])

ErrorException("AA not defined")

julia> push!(dd,"aa",["AA"])

MethodError(push!,([],"aa",["AA"]))

要生成简单类型的

julia> k=Dict{String,Float64}()

Dict{String,Float64}()

要生成一个复合类型的:类似泛型

julia> d=Dict{String,Array{kBarData,1}}()

Dict{String,Array{kBarData,1}}()

julia> dict=["son"=>6]

julia>push!(dict,"father",7)

["son"=>6,"father"=>7]

# collect(values(d)) #d:dict type

julia> collect(keys(Data))

9-element Array{String,1}:

"DLm01."

......

三、 array

和Dict不同,[]可以用push!

julia> f=String[]

0-element Array{String,1}

julia> push!(f,"a")

1-element Array{String,1}:

"a"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: