Question
Asked By – James Hiew
From the Python 3.7 changelog:
the insertion-order preservation nature of dict objects has been declared to be an official part of the Python language spec.
Would this mean that OrderedDict
will become redundant? The only use I can think of it will be to maintain backwards compatibility with older versions of Python which don’t preserve insertion-order for normal dictionaries.
Now we will see solution for issue: Will OrderedDict become redundant in Python 3.7?
Answer
No it won’t become redundant in Python 3.7 because OrderedDict
is not just a dict
that retains insertion order, it also offers an order dependent method, OrderedDict.move_to_end()
, and supports reversed()
iteration*.
Moreover, equality comparisons with OrderedDict
are order sensitive and this is still not the case for dict
in Python 3.7, for example:
>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)])
False
>>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)])
True
Two relevant questions here and here.
* Support for reversed()
iteration of regular Python dict
is added for Python 3.8, see issue33462
This question is answered By – Chris_Rands
This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0