Python의 OrderedDict가 시퀀스 유형이 아니라는 사실이 약간 마음이 울립니다. 순서의 개념을 가지고 있지만 순서가 아닙니다. 문자열, 유니 코드 문자열,리스트, 튜플, bytearrays, 버퍼 및 xrange 객체 :파이썬 유형에 순서 개념이 있는지 알아 보는 방법은 무엇입니까? 시퀀스 란 무엇입니까?
Python docs 일곱 개 시퀀스 유형이 있습니다
을 말한다.다른 컨테이너의 경우 내장 된 dict 및 set 클래스와 콜렉션 모듈을 참조하십시오. ... 대부분의 시퀀스 유형은 다음 연산을 지원합니다. 시퀀스 유형도 비교를 지원합니다.
__contains__
대응
이러한 조작 (range(len(foo))
에서) 정수와 연결 용 __add__
, __getitem__
, __len__
, __min__
, __slice__
, index
및 count
. __lt__
등은 비교를 구현합니다.
OrderedDicts는 이러한 메소드 중 일부를 구현하지만 다른 메소드는 구현하지 않습니다. 이는 키 (dict) 또는 색인 (index)과 같은 항목을 액세스하는 구문 설탕이 동일하기 때문일 수 있습니다.
무언가가 __iter__
을 구현하면 알고 있습니다. 뭔가 주문이 있는지 어떻게 알 수 있습니까? 나는 그것이 "시퀀스"에 의해 의미되는 것이라고 생각했을 것입니다, n 번째 항목은 항상 n 번째 항목입니다.
사용자 정의 유형에도 관심이 있습니다. – pfctdayelise
저자가'collections.abc.Sequence'의 (실제로 또는 가상의) 서브 클래스를 작성하는 것을 괴롭히는 한, 이것은 사용자 정의 타입에도 적용됩니다. – delnan