我如何获得朱莉娅字典的大小

Jon*_*nas 3 dictionary julia

如何获得 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)

Jon*_*nas 5

使用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)