Python 3.7 では OrderedDict は不要になりますか? 質問する

Python 3.7 では OrderedDict は不要になりますか? 質問する

からPython 3.7 の変更履歴:

挿入順序の保存性辞書オブジェクト宣言されましたPython 言語仕様の公式な一部となる。

これはつまり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

関連する2つの質問ここそしてここ

* Python 3.8ではreversed()通常のPythonの反復処理のサポートが追加されました。dict問題33462

おすすめ記事