Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Items ordering in Python dictionary

I am in simple doubt... I created the following dictionary:

>>> alpha={'a': 10, 'b': 5, 'c': 11}

But, when I want to see the dictionary keys and values I got:

>>> alpha
{'a': 10, 'c': 11, 'b': 5}

See that the "b" and "c" has swapped their position. How can I make the position be the same of the moment that the dictionary was created?

like image 886
Thomas Avatar asked Jun 27 '10 16:06

Thomas


2 Answers

Dictionaries are unordered containers - if you want to preserve order, you can use collections.OrderedDict (Python 2.7 or later), or use another container type which is naturally order-preserving.

Generally if you have an access pattern that cares about ordered retrieval then a dictionary is solving a problem you don't have (fast access to random elements), while giving you a new one.

like image 107
Nick Bastin Avatar answered Oct 22 '22 16:10

Nick Bastin


Dictonaries are not guaranting sorting of keys. You can find this information in python docs: http://docs.python.org/tutorial/datastructures.html#dictionaries

You can always sort dictionary keys or use other, more specialized collection.

like image 23
dzida Avatar answered Oct 22 '22 17:10

dzida