[python] OrderedDict는 Python 3.7에서 중복됩니까?

로부터 파이썬 3.7 변경 내역 :

dict 객체 의 삽입 순서 보존 특성은 Python 언어 사양의 공식 부분 으로 선언되었습니다 .

이것이 OrderedDict중복 된다는 것을 의미 합니까? 내가 생각할 수있는 유일한 용도는 일반 사전의 삽입 순서를 유지하지 않는 이전 버전의 Python과 역 호환성을 유지하는 것입니다.



답변

아니요 , 삽입 순서를 유지 OrderedDict하는 dict것뿐만 아니라 순서 종속 메서드를 제공하고 반복 *을 OrderedDict.move_to_end()지원 하기 때문에 Python 3.7에서는 중복 되지 않습니다 reversed().

또한와의 동등 비교 OrderedDict는 순서에 민감하며 dictPython 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 반복 지원 dict이 Python 3.8에 추가되었습니다. issue33462를 참조 하세요.


답변