字典在未修改的情况下是否保留迭代顺序?
如果我在Python中有一个字典,我第一次遍历它,然后过了一段时间再遍历一次,假如我没有在字典里插入、删除或更新任何项目,这样的话,遍历的顺序会保持不变吗?(不过我可能查过一些值。)
7 个回答
5
是的,这里没有随机的成分。其实还有更强的保证——可以查看这里。
12
标准的Python dict
(字典)和大多数实现一样,通常不保留元素的顺序,因为我们一般是通过键来访问这些元素的。
不过,有时候我们需要按顺序遍历这些元素。在Python 3.1中,collections
模块里有一个叫做OrderedDict的东西,它可以保持元素的顺序,而且对性能的影响很小。
31
这里是 dict.items()
的官方说明:
dict.items()
会返回字典中所有(键,值)对的一个副本。如果在调用
items()
、keys()
、values()
、iteritems()
、iterkeys()
和itervalues()
这些方法时,没有对字典进行任何修改,那么返回的列表会直接对应。
我觉得可以合理地假设,如果你只是进行遍历,项的顺序是不会改变的。