如何在julia中获得字典的大小?size()
抛出错误。
julia> d = Dict(:x => 1, :y => 2)
julia> size(d)
MethodError: no method matching size(::Dict{Symbol,Int64})
使用length()
julia> d = Dict(:x => 1, :y => 2)
julia> length(d)
2
size()
不工作的原因是,大小是用来给容器的尺寸。来自文档:
size(A::AbstractArray, [dim])
返回一个包含a的维度的元组。您也可以指定一个维度来获取该维度的长度。
和
length(A::AbstractArray)
返回数组中元素的个数,默认为prod(size(A))。
字典的关键在于它们实际上没有维度。当然,您可以将它们表示为一维,但这会忽略一个事实,即字典值可以具有"维度",而不一定是统一的。例如,这个字典应该有哪些维度?两个?用户可能会错误地认为他们可以访问dict[:a][1]
:
julia> dict = Dict(:a => 1, :b => [1, 2])
Dict{Symbol,Any} with 2 entries:
:a => 1
:b => [1, 2]