如何获得 Julia 字典的大小?size()抛出错误。
julia> d = Dict(:x => 1, :y => 2)
julia> size(d)
MethodError: no method matching size(::Dict{Symbol,Int64})
Run Code Online (Sandbox Code Playgroud)
使用length()。
julia> d = Dict(:x => 1, :y => 2)
julia> length(d)
2
Run Code Online (Sandbox Code Playgroud)
不起作用的原因size()是 size 用于给出容器的尺寸。来自文档:
size(A::AbstractArray, [dim])
Run Code Online (Sandbox Code Playgroud)
返回包含 A 维度的元组。您可以选择指定一个维度以获取该维度的长度。
和
length(A::AbstractArray)
Run Code Online (Sandbox Code Playgroud)
返回数组中元素的数量,默认为 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]
Run Code Online (Sandbox Code Playgroud)