Here we will see how to work with the Python OrderedDict collection.
This article is intended for the users, who are using Python 3.6 or lower versions because of Python 3.7, a new improvement to the built-in dict
the release doc says:
The insertion-order preservation nature of dict objects has been declared to be an official part of the Python language spec.
Hence, there is no real need of OrderedDict
anymore for new Python users concerning maintaining the order; while considering some minor differences.
Python OrderedDict:
The OrderedDict is a subclass of Python Dict, it stores the elements, the way they get inserted into it. In a normal Python Dict data structure, we can not expect the order of the elements in which we inserted. Whereas the OrderedDict
preserves the order.
Python OrderedDict Example:
Let’s create an OrderedDict
and do some operations on it.
from collections import OrderedDict
ord_dict = OrderedDict()
ord_dict['A'] = 65
ord_dict['B'] = 66
ord_dict['C'] = 67
ord_dict['D'] = 68
for key, value in ord_dict.items():
print(f"{key} => {value}")
Output:
A => 65
B => 66
C => 67
D => 68
In the above output, you can observe the order of the elements, it was read as we inserted it into OrderedDict
.
Reverse OrderedDict:
We can reverse the order of OrderedDict while reading it using reversed()
function.
from collections import OrderedDict
ord_dict = OrderedDict()
ord_dict['A'] = 65
ord_dict['B'] = 66
ord_dict['C'] = 67
ord_dict['D'] = 68
print("Reverse Order")
for key, value in reversed(ord_dict.items()):
print(f"{key} => {value}")
Output:
Reverse Order
D => 68
C => 67
B => 66
A => 65
Convert Dict to OrderedDict:
A normal python Dict
can easily be converted to OrderdDict
like the following.
data = {"online": 6, "tutorials":9, "point":5}
print("Before Ordered")
print(data)
print("After Ordered")
print(OrderedDict(data))
Output:
Before Ordered
{'online': 6, 'tutorials': 9, 'point': 5}
After Ordered
OrderedDict([('online', 6), ('tutorials', 9), ('point', 5)])
As I mentioned earlier there is no difference in results for Dict
or OrderedDict
either; while we use Python 3.7 or later versions.
Done!
References:
Happy Learning 🙂