I am familiar with the fact that in Python (<3.6) the order of a dict cannot be predicted at initialisation, for example:
d = {'B' : 2, 'A' : 1, 'C' : 3}
creates this dictionary on my computer:
{'A': 1, 'C': 3, 'B': 2}
My question is whether the order will stay unpredictable after initialisation, or that once it is written to memory, it is fixed. Why is that (not) the case? (This assumes that the dictionary is not written to after init)
In other words, if I run
print(d.keys())
print(d.values())
consecutively will the 2 results always match up?