Python Ordereddict In Collections Tutorial – Complete Guide

Welcome all Python enthusiasts, we are resuming our journey into the epic libraries Python provides and this time we’ll navigate the powerful yet underappreciated realm of the collections module. Our guide for today will be ‘OrderedDict’. Just like the name hints this is no ordinary dictionary. Buckle up, and let’s discover what’s behind the OrderedDict and why you should add it in your coding repertoire.

Primer: What is OrderedDict?

An OrderedDict is a dictionary subclass from the collections module in Python. Python dictionaries are inherently orderless, which means they don’t keep track of the insertion order of the elements. This is where OrderedDict differs.

OrderedDict remembers the order that items were inserted. When you loop through an OrderedDict, items will always be returned in the order they were first added.

Why Learn About OrderedDict?

Now, you might be wondering, why learn about OrderedDict when most tasks can be accomplished with a regular dictionary? Well, understanding how and when to use an OrderedDict can greatly improve your coding versatility. Besides, they open up new possibilities, such as maintaining an order of elements while still harnessing the functionality of dictionaries. Adding this to your toolkit gives you an edge, and makes you a better Python programmer overall.

Most importantly, being in the collections module, OrderedDicts are just a glimpse of what this powerful toolbox has to offer. Mastering it is like unlocking a treasure chest of tools that can significantly simplify your coding tasks and save considerable time.

Think about it as having a special power in a game. A power that lets you maintain order in chaos, quite literally. It could make the difference between winning and losing, or in programming terms, between an effective and an ineffective piece of code.

CTA Small Image
FREE COURSES AT ZENVA
LEARN GAME DEVELOPMENT, PYTHON AND MORE
ACCESS FOR FREE
AVAILABLE FOR A LIMITED TIME ONLY

How to Implement OrderedDict

Importing the collections module and creating an OrderedDict is a breeze. Here’s how you do it:

import collections

d = collections.OrderedDict()

Once you’ve done this, you can use the OrderedDict just like you would a regular dictionary. For instance, let’s add some elements to it:

d['first'] = 1
d['second'] = 2
d['third'] = 3
d['fourth'] = 4

How to Use OrderedDict

Let’s see how we can use some of the OrderedDict methods. First, the pop() method:

item = d.pop('first')
print(item)
# Output: 1

As you can see, the pop() method can be used to return and remove an item from the dictionary using its key.

Next, the keys() method:

keys = d.keys()
print(keys)
# Output: odict_keys(['second', 'third', 'fourth'])

The keys() method returns a new object of type odict_keys(), which is a set-like object providing a view of the OrderedDict’s keys. Similar to this, the values() and items() methods can be used to view the values and key-value pairs:

values = d.values()
print(values)
# Output: odict_values([2, 3, 4])

items = d.items()
print(items)
# Output: odict_items([('second', 2), ('third', 3), ('fourth', 4)])

Persistence of Order

One of the main features of OrderedDict, as we discussed earlier, is that it remembers the order of elements. So when we iterate through our OrderedDict, it preserves the order in which elements were added :

for key, value in d.items():
    print(key, value)
    
# Output:
# second 2
# third 3
# fourth 4

As you can see, the elements are not returned in any sorted order, but in the order they were inserted into the OrderedDict.

Adding New Elements

Just like a normal dictionary, adding elements to an OrderedDict is very straightforward:

d['fifth'] = 5

for key, value in d.items():
    print(key, value)
    
# Output:
# second 2
# third 3
# fourth 4
# fifth 5

As you see above, the new key-value pair ‘fifth’:5 was added at the end because of the inherent order-persistence in OrderedDict.

Updating Elements

Updating the value of an existing key is also simple, and doesn’t affect the order:

d['second'] = 22

for key, value in d.items():
    print(key, value)
    
# Output:
# second 22
# third 3
# fourth 4
# fifth 5

The value of ‘second’ was updated, but it still maintains its position in the order.

Deleting Elements

You can use the ‘del’ keyword to remove an item. The order of the remaining elements will still be preserved:

del d['third']

for key, value in d.items():
    print(key, value)
    
# Output:
# second 22
# fourth 4
# fifth 5

The ‘third’ element is removed while still maintaining the order.

Reordering Elements

Although the order is preserved when items are added, you can also manually change the order of items. This is done by popping and reinserting items:

item = d.pop('second')
d['second'] = item

for key, value in d.items():
    print(key, value)
    
# Output:
# fourth 4
# fifth 5
# second 22

As the above example shows, ‘second’ is now at the end of the ordered dictionary. This is because we popped it from the dictionary and then reinserted it.

Unlike Regular Dictionaries, Going Reverse is Also Possible

One cool feature of OrderedDict is the reverse() method. It allows you to loop through your dictionary backwards:

for key in reversed(d):
    print(key, d[key])

# Output:
# second 22
# fifth 5
# fourth 4

The above code loops through the OrderedDict in reverse order, showing again the ordered nature of this powerful tool.

Where to Go Next?

Now that you’ve dived into Python’s OrderedDict and unlocked its abilities, you may be wondering, what’s next? Well, your Python journey doesn’t stop here. There’s a whole epic saga of knowledge out there waiting for you to conquer!

We at Zenva pride ourselves on being your guide in this journey. With our engaging and comprehensive beginner to professional courses in programming, game development, and AI, we help budding coders, like you, ramp up your skills. We strive for excellence through our continuously updated, industry-relevant content.

Our learners not only develop games, create apps, explore fields like data science, and machine learning, but also earn certificates from Zenva. The proof of our success lies in our wide community of over 1 million learners, many of whom used the skills learned from our courses to publish their own games, land jobs, or start their own businesses.

Our Python Mini-Degree is one such program that offers a comprehensive array of courses designed to teach Python programming from the ground up. Suitable for beginners and more experienced programmers alike, the curriculum includes hands-on projects and quizzes to reinforce your learning. The best part? It’s self-paced. You can take as much time as you need to master each topic.

If you’re looking for a richer variety of Python courses, we’ve got your back. Check out our complete range of Python courses where you can learn everything from the basics to the specific applications of Python in various fields.

Conclusion

So, now it’s time to bid adieu to chaos and welcome order with Python’s OrderedDict! We’ve journeyed through this powerful class, understanding its salient features and playing with its nifty methods. We explored how OrderedDicts take the capabilities of ordinary Python dictionaries to the next level by maintaining the order of elements, and we glanced at the treasures waiting to be unearthed in the collections module.

The path to mastery of Python doesn’t end here. As we continue to unravel Python’s mysteries, remember that Zenva’s Python Mini-Degree is your trusty companion, ready to guide you with engaging, in-depth courses and hands-on projects. With us, you’re never alone in your journey towards mastering Python. So, what are you waiting for? Let’s continue this exciting adventure. Happy coding!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

FREE COURSES
Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.