如果我在Python dict上调用iteritems(),那么结果列表的顺序是如何确定的?

mdo*_*fe1 3 python dictionary

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

jos*_*hua 8

订单由它们出现在dict内部表中的顺序决定.这本质上是对象的散列,即该表的长度(加上一些散列碰撞时的偏移量).每当内部表的大小发生变化时,订单都会发生变化,这可能发生在您从dict添加项目时(或者在删除项目时更少).

你不能合理地预测它,也不应该为任何目的依赖字典排序.

读这个:

Python字典实现