gpt4 book ai didi

dictionary - 在 Julia 中用数组键字典

转载 作者:行者123 更新时间:2023-12-01 13:16:16 27 4
gpt4 key购买 nike

在 julia 语言(版本 1.1.0)中,我正在试验当我改变字典键时会发生什么。

在突变之前,变量x[1,2,3] 都被识别了。

x = [1,2,3]; d = Dict(x=>"x")
haskey(d, x)
# true

haskey(d, [1,2,3])
# true

一旦我改变x,变量x[1,2,3,4] 都不会被识别。

push!(x, 4)
haskey(d, x)
# false

haskey(d, [1,2,3,4])
# false

haskey(d, [1,2,3])
# false

值方面,键“等于”x,所以我猜这与哈希函数有关,但无法理解 source code .

collect(keys(d))[1] == x == [1,2,3,4]
# true

有人可以解释是什么导致了这种行为,或者建议我应该查看的资源吗?

最佳答案

要研究的关键函数是 ht_keyindex .

在那里你可以看到,为了找到 key ,它必须:

有一个不可忽略的概率,即在改变 x 之后,它将具有相同的 hashindex 值,并且会找到 key 。例如,您可以将 x 的索引 4 设置为 5,所有这些看起来都可以工作:

julia> x[4] = 5
5

julia> x
4-element Array{Int64,1}:
1
2
3
5

julia> haskey(d, x)
true

因此 - 就像任何以类似方式支持字典的编程语言一样 - 不应该改变字典的键。以上讨论在实践中应该只是理论上的。

关于dictionary - 在 Julia 中用数组键字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54735538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com