dict: keys() and values() order guaranteed to be same?

Ethan Furman ethan at stoneleaf.us
Thu Jul 26 23:06:03 CEST 2012


Chris Angelico wrote:
> On Tue, Jul 24, 2012 at 1:20 AM, Steven D'Aprano
> <steve+comp.lang.python at pearwood.info> wrote:
>> (Although if you think about the implementation of dicts as hash tables,
>> it does seem likely that it is trivial to enforce this -- one would have
>> to work *harder* to break that promise than to keep it.)
> 
> However, it would be quite reasonable to implement a dict as a splay
> tree, and have values() return them nearest-first. This would mean
> that just reading from the dictionary could change the order of
> values(), yet it wouldn't make the implementation non-conformant.

Yes, it would.  The docs say that .keys(), .values(), etc., will 
maintain order unless the dict is modified in between calls.

~Ethan~



More information about the Python-list mailing list