これはOrderedDict
冗長になることを意味しますか?私が考えることができる唯一の用途は、通常の辞書の挿入順序を保持しない古いバージョンのPythonとの下位互換性を維持することです。
これはOrderedDict
冗長になることを意味しますか?私が考えることができる唯一の用途は、通常の辞書の挿入順序を保持しない古いバージョンのPythonとの下位互換性を維持することです。
回答:
いいえ、Python 3.7では冗長になることはありません。これは、が挿入順序を保持するOrderedDict
だけでなくdict
、順序に依存するメソッド、を提供し、反復OrderedDict.move_to_end()
をサポートするためreversed()
です*。
さらに、との等価性の比較OrderedDict
は順序に依存しますがdict
、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
*reversed()
通常のPythonの反復のサポートがPython3.8にdict
追加されました。issue33462を参照してください。