Re: 이터레이터 공부하는데 __getitem__질문합니다.
, 도장_ 관리자님이 작성a = [38, 21, 53, 62, 19]리스트가 이렇게 있다면 인덱스는
0, 1, 2, 3, 4가 됩니다.
a[0]는 38이고, a[1]은 21입니다.
논리적인 순서가 무슨 뜻인지는 모르겠지만, 정렬된 상태를 뜻한다면 그것과는 아무 상관이 없습니다.
그건 리스크를 정렬해서 얻을 수 있는 결과입니다. 정렬하면
[19, 21, 32, 53, 62]
이렇게 됩니다.
sort 함수는 알고 있겠지요?
정렬한 이후에는 a[0]는 19, a[1]은 21입니다.
파이썬의 리스크는 인덱스 -> 값으로 연결되어 있습니다.
평소에는 값만 출력되지만, 순서대로 접근하거나 원하는 요소에 접근할 때는 인덱스를 사용합니다. a[3]처럼 말이죠.
파이썬에서 대다수 객체는 반복 가능한(iterable) 객체입니다. 반복 가능한 객체에 대해 공통으로 사용할 수 있는 기능들이 제공됩니다. for가 대표적이죠.
내가 만든 자료 구조는 처음부터 정렬 가능한 상태를 유지하고 싶다면 그런 형태의 자료 구조를 만들면 됩니다. SortedList 클래스를 만들고, 이터레이터를 구현해주면 됩니다. 그러면 항상 내부에 값은 정렬된 상태를 유지하게 만들 수 있습니다.
이러한 형태의 클래스 구현은 검색하면 많이 있습니다.
http://www.grantjenks.com/docs/sortedcontainers/_modules/sortedcontainers/sortedlist.html#SortedList
자료구조와 알고리즘 쪽으로 공부하시면 더 깊이 있는 설명이 있고, 직접 코드로 많이 구현해보게 될 겁니다.