Equivalent for LinkedHashMap in Python
Although you can do the same thing by maintaining a list to keep track of insertion order, Python 2.7 and Python >=3.1 have an OrderedDict class in the collections module.
Before 2.7, you can subclass dict
following this recipe.
I don't think so; you'd have to use a dict plus a list. But you could pretty easily wrap that in a class, and define keys
, __getitem__
, __setitem__
, etc. to make it work the way you want.
If you're on Python 2.7 or Python >=3.1 you can use collections.OrderedDict in the standard library.
This answer to the question How do you retrieve items from a dictionary in the order that they’re inserted? contains an implementation of an ordered dict, in case you're not using Python 3.x and don't want to give yourself a dependency on the third-party ordereddict module.
I am not sure whether this is what you are asking for:
>>> dic = {1: 'one', 2: 'two'}
>>> for k, v in dic.iteritems():
... print k, v
you can order the dic in the order of the insertion using ordereddict module.
d = ordereddict(dic, relax=True)