Can Internal Dictionary Order Change?
Solution 1:
Dict don't have a fixed order, from documentation
CPython implementation detail: Keys and values are listed in an arbitrary order which is non-random, varies across Python implementations, and depends on the dictionary’s history of insertions and deletions.
If you really need to keep it ordered, there is an object called OrderedDict
:
from collections importOrderedDictexampleDict= OrderedDict({'a':1, 'b':2, 'c':3, 'd':4})
see also OrderedDict documentation here
Solution 2:
Curious about why you want them ordered. Any chance it's just for consistent logging/printing or similar? If so, you can sort the keys alphabetically. See other article: How to sort dictionary by key in numerical order Python
Solution 3:
Yes. If you do change the code between different calls to the dict, the order of iteration will change.
From the docs
If items(), keys(), values(), iteritems(), iterkeys(), and itervalues() are called with no intervening modifications to the dictionary, the lists will directly correspond.
If the order of insertion matter, check out the OrderedDict class
Post a Comment for "Can Internal Dictionary Order Change?"