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

Reply via email to