これは、 OrderedDict
が冗長になることを意味しますか?私が考えることができる唯一の使用は、通常の辞書の挿入順序を保持しないPythonの古いバージョンとの後方互換性を維持することです。
いいえ、それはPython 3.7では冗長になりません。なぜならOrderedDict
は挿入順序を保持するdict
であるだけでなく、順序に依存する方法も提供するためです- OrderedDict.move_to_end()
、および reversed()
iteration *をサポートします。
さらに、OrderedDict
との等値比較は順序に敏感であり、これはdict
in Python 3.7、例えば:
_>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)])
False
>>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)])
True
_
*定期的なPython dict
のreversed()
反復のサポートPython 3.8、 issue33462を参照)