我处于学习Python的非常的早期阶段。这个问题更多的是与基本理解有关,而不是编码。我正在阅读我的课程,它说
“运行下面显示以下内容的程序:缩进和 键值对的间距只是提供了更高的可读性。 请注意,命令在打印时不会保留在字典中。”
我知道我可以指定,以便每次的顺序都相同。我可以的我想知道当您编写程序并运行它时,为什么未指定时却以不同的顺序返回结果?是因为它在处理器中的处理方式吗?
谢谢。
答案 0 :(得分:0)
答案与Python无关,与数据结构无关。此行为是通用的,在实现类似数据结构的所有语言中都是预期的。在Python中,它称为字典,在其他语言中,它称为Map或Hash Map或Hash Table。相同的基础数据结构还有一些其他相似的名称。
Python词典是一个 Associative 集合,与Python列表(它只是一个数组)相对,后者的元素在内存中是连续的。
字典(关联集合)提供的最大优势是快速且恒定的查找时间(O(1))-数组还提供快速查找,因为计算索引很简单-但是字典由键值对组成,其中该密钥可以是任何可哈希的东西。
本质上,要确定关联值应在关联容器中的“索引”,您可以获取键,对其进行哈希处理,设计某种方式将哈希映射到数字并将该数字视为索引。尽管两个不同的对象产生相同的哈希值的可能性很小,但理论上可能会发生-更可能发生的是您的hash-to-number procedure maps two unique hashes to the same number-在任何情况下都可能发生这样的冲突,并且{{3 }}。
关键是,键的哈希值确定关联值在集合中出现的顺序-因此,没有固有顺序。