What is the best ordered dict implementation in python?

Josh Gibson picture Josh Gibson · Apr 5, 2009 · Viewed 7.4k times · Source

I've seen (and written) a number of implementations of this. Is there one that is considered the best or is emerging as a standard?

What I mean by ordered dict is that the object has some concept of the order of the keys in it, similar to an array in PHP.

odict from PEP 372 seems like a strong candidate, but it's not totally clear that it is the winner.

Answer

sah picture sah · Jan 8, 2010

This one by Raymond Hettinger is a drop-in substitute for the collections.OrderedDict that will appear in Python 2.7: http://pypi.python.org/pypi/ordereddict

The dev version of the collections docs say it's equivalent to what will be in Python 2.7, so it's probably pretty likely to be a smooth transition to the one that will come with Python.

I've put it in PyPI, so you can install it with easy_install ordereddict, and use it like so:

from ordereddict import OrderedDict
d = OrderedDict([("one", 1), ("two", 2)])