如果我有一个 python 字典(或集合,或其他类型的无序容器)并且我调用它,我可以期待哪个键和/__str__
或__repr__
值的顺序?
当然,正如“无序容器”这个名称所指出的,所包含的元素没有特定的顺序。然而,如果包含的元素以任意顺序打印,这种任意顺序至少是持久的吗?
容器的字符串表示是否总是相同的(假设我没有更改容器或其元素的任何内容)?或者第 n 次调用
__repr__
或__str__
在某些时候会改变打印元素的顺序?如果我重新创建具有相同内容的字典(可能在不同的机器上)会发生什么情况,打印元素的顺序是否仍与以前相同?
编辑:为什么这个问题被标记为重复?我不是在问为什么顺序是任意的。我问字符串表示是否是持久的。这可能不仅仅取决于底层的哈希机制。