exampleDict = {\'a\':1, \'b\':2, \'c\':3, \'d\':4}
The above dictionary initially iterated through in this order:
b=2
d=4
a=1
c=3
<
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 import OrderedDict
exampleDict = OrderedDict({'a':1, 'b':2, 'c':3, 'd':4})
see also OrderedDict documentation here
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
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