Here is the dictionary I have
propertyList = { 'id': 'int', 'name': 'char(40)', 'team': 'int', 'realOwner': 'int', 'x': 'int', 'y': 'int', 'description': 'char(255)', 'port': 'bool', 'secret': 'bool', 'dead': 'bool', 'nomadic': 'bool', 'population': 'int', 'slaves': 'int', }
But when I print it out with ‘\n’.join(myDict) I get this
name nomadic dead port realOwner secret slaves team y x population id description
I know that a dictionary is unordered but it comes out the same every time and I’ve no idea why.
For older versions of Python, the real question should be “why not?” — An unordered dictionary is usually implemented as a hash table where the order of elements is well-defined but not immediately obvious (the Python documentation used to state this). Your observations match the rules of a hash table perfectly: apparent arbitrary, but constant order.
Python has since changed its
dictimplementation to preserve the order of insertion, and this is guaranteed as of Python 3.7. The implementation therefore no longer constitutes a pure hash table (but a hash table is still used in its implementation).