Tor*_*tar 2 dictionary set julia
我知道,在 Julia 中,字典不会保留按此处所述插入键的原始顺序,但是使用给定插入顺序构造的字典(和集合)是否保留它们在运行之间使用的任意顺序?这是相关的,因为这意味着可以假定任意顺序在运行之间保持稳定,例如,如果我运行以下代码,则顺序将被保留
\ndictionary = Dict(1 => 77, 2 => 66, 3 => 1, 50 => 2)\nprint(collect(keys(dictionary)))\nRun Code Online (Sandbox Code Playgroud)\n因为每次运行时它总是打印
\n[50, 2, 3, 1]\nRun Code Online (Sandbox Code Playgroud)\n这只是为了表明我的意思,一般来说,对于所有键类型(甚至对于整数)都是如此吗?在这个问题中, @PM 2Ring 给出了一个答案,它描述了对于 Python 集合来说,这并不适用于所有类型,因为
\n\n\n默认情况下, str、bytes 和 datetime 对象的hash () 值是 \xe2\x80\x9csalted\xe2\x80\x9d ,具有不可预测的随机值
\n
小智 6
简短的回答是:你不能保证它,也不应该依赖它,尤其是跨机器、版本等。
特别是,集合非常严格地遵循集合的数学定义,并且没有顺序。
如果您需要依赖键或元素的顺序,可以使用OrderedCollections包,它曾经是 DataStructures 的一部分。它已经订购了集合和词典的版本。
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |