python - 如果我在 Python 字典上调用 iteritems(),结果列表的顺序是如何确定的?

标签 python dictionary

我知道Python dicts是无序的,但是如果你调用iteritems(),它会返回一个有序的列表。该列表的顺序是如何确定的?

最佳答案

顺序由它们在字典内部表中出现的顺序决定。它本质上是对象的哈希值 mod 该表的长度(加上存在哈希冲突时的一些偏移量)。每当内部表的大小发生变化时,顺序就会发生变化,这种情况可能会在您从字典中添加项目时发生(或者在您删除项目时发生)。

您无法合理地预测它,并且不应出于任何目的依赖字典排序。

阅读此内容:

Python dictionary implementation

关于python - 如果我在 Python 字典上调用 iteritems(),结果列表的顺序是如何确定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23092626/

相关文章:

python - 线性 curve_fit 总是产生 1 的斜率和 y 轴截距

Python Sqlite 添加一行

映射中的 C++ 结构作为值 - 错误 "no instance of overloaded function matches the argument list"

c++ - 在冒险游戏中检查空房间?

python - 如何防止将相同的值(使用另一个键)添加到字典中?

c# - 在这种情况下,哪个是更好的数据结构 : Dictionary<string, Func<object>> 还是 Dictionary<string, object>?

python分散阈值函数不起作用

python - 如何在 Python 中使用用户输入打印列表的特定部分

python - 为什么 codecs.iterdecode() 吃空字符串?

c# - 在包含字典的类上公开 foreach