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


90

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

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

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


답변:


132

아니요 , 삽입 순서를 유지 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를 참조 하세요.


비교할 때 주문 민감도에 대한 요점은 여기에서 매우 유효합니다.
Tim Skov Jacobsen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.