これはつまりOrderedDict
冗長になるのでしょうか? 私が考えられる唯一の用途は、通常の辞書の挿入順序を保持しない古いバージョンの Python との下位互換性を維持することです。
ベストアンサー1
いいえ、Python 3.7では冗長にはなりません。挿入順序を保持するOrderedDict
だけでなくdict
、順序に依存するメソッドも提供しているからです。OrderedDict.move_to_end()
、およびサポートreversed()
反復*。
さらに、 との等価比較は順序に依存しますが、これはPython 3.7 ではOrderedDict
まだ当てはまりません。次に例を示します。dict
>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)])
False
>>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)])
True
* Python 3.8ではreversed()
通常のPythonの反復処理のサポートが追加されました。dict
問題33462