Ben Finney <ben+pyt...@benfinney.id.au> writes: > Tim Chase <python.l...@tim.thechases.com> writes: > >> On 11/03/11 16:36, Terry Reedy wrote: >> > CPython iterates (and prints) dict items in their arbitrary internal >> > hash table order, which depends on the number and entry order of the >> > items. It is a bug to depend on that arbitrary order in any way. >> >> Does this "never trust it" hold even for two consecutive iterations >> over an unchanged dict? I didn't see anything in the docs[1] to make >> such a claim, > > Exactly.
This is false. The docs say: If items(), keys(), values(), iteritems(), iterkeys(), and itervalues() are called with no intervening modifications to the dictionary, the lists will directly correspond. This allows the creation of (value, key) pairs using zip(): pairs = zip(d.values(), d.keys()). (http://docs.python.org/library/stdtypes.html#mapping-types-dict) > The order of retrieval is entirely up to the implementation. This part is still true, but the order won't change behind your back if you're not touching the dict. -- http://mail.python.org/mailman/listinfo/python-list