[PYTHON] 파이썬의 표준 라이브러리에 정렬 된 컨테이너가없는 이유는 무엇입니까?
PYTHON파이썬의 표준 라이브러리에 정렬 된 컨테이너가없는 이유는 무엇입니까?
정렬 된 컨테이너가 파이썬에 추가되지 않도록하는 파이썬 디자인 결정 (PEP)이 있습니까?
OrderedDict는 정렬 순서가 아니기 때문에 정렬 된 컨테이너가 아닙니다.
해결법
-
==============================
1.Guido의 부분에 대한 의식적인 디자인 결정입니다 (컬렉션 모듈을 추가하는 것에 대해 다소 주저했습니다). 그의 목표는 응용 프로그램의 데이터 유형을 선택할 때 "한 가지 확실한 방법"을 유지하는 것입니다.
Guido의 부분에 대한 의식적인 디자인 결정입니다 (컬렉션 모듈을 추가하는 것에 대해 다소 주저했습니다). 그의 목표는 응용 프로그램의 데이터 유형을 선택할 때 "한 가지 확실한 방법"을 유지하는 것입니다.
기본 개념은 사용자가 내장 유형이 자신의 문제에 대한 올바른 해결책이 아니라는 사실을 깨닫기에 충분히 정교한 경우 적절한 제 3 자 라이브러리를 찾는 것입니다.
리스트 + 정렬을 감안할 때 list + heapq와 list + bisect는 본질적으로 정렬 된 데이터 구조에 의존하는 많은 유스 케이스를 포함하며 blist와 같은 패키지가 존재하므로이 공간에 더 많은 복잡성을 추가 할 수있는 큰 힘은 없다. 표준 라이브러리
어떤면에서는 표준 라이브러리에 다차원 배열이없고 NumPy 사람들에게 그 작업을 맡기는 것과 비슷합니다.
-
==============================
2.또한 sorted list, dict 및 set types를 구현하는 python sortedcontainers 모듈이 있습니다. blist와 매우 비슷하지만 순수 Python과 대부분의 경우 더 빠르게 구현됩니다.
또한 sorted list, dict 및 set types를 구현하는 python sortedcontainers 모듈이 있습니다. blist와 매우 비슷하지만 순수 Python과 대부분의 경우 더 빠르게 구현됩니다.
>>> from sortedcontainers import SortedSet >>> ss = SortedSet([3, 7, 2, 2]) >>> ss SortedSet([2, 3, 7])
또한 다른 패키지에는 드문 기능성이 있습니다.
>>> from sortedcontainers import SortedDict >>> sd = SortedDict((num, num) for num in range(100000)) >>> sd.iloc[-5] # Lookup the fifth-to-last key. 99995
면책 조항 : 나는 sortedcontainers 모듈의 저자입니다.
-
==============================
3.sortedset 데이터 형식을 포함하는 blist 모듈도 있습니다.
sortedset 데이터 형식을 포함하는 blist 모듈도 있습니다.
sortedset(iterable=(), key=None) >>> from blist import sortedset >>> my_set = sortedset([3,7,2,2]) sortedset([2, 3, 7]
-
==============================
4.정확히 "정렬 된 컨테이너"는 아니지만 표준 라이브러리의 bisect 모듈에 관심이있을 것입니다.이 모듈은 "삽입 할 때마다 목록을 정렬하지 않고 정렬 된 순서로 목록을 유지 관리 할 수 있도록 지원합니다".
정확히 "정렬 된 컨테이너"는 아니지만 표준 라이브러리의 bisect 모듈에 관심이있을 것입니다.이 모듈은 "삽입 할 때마다 목록을 정렬하지 않고 정렬 된 순서로 목록을 유지 관리 할 수 있도록 지원합니다".
-
==============================
5.표준 라이브러리에는 heapq가 있습니다. 정확히 정렬되지는 않지만 종류는 다릅니다. blist 패키지도 있지만 표준 라이브러리에는 없습니다.
표준 라이브러리에는 heapq가 있습니다. 정확히 정렬되지는 않지만 종류는 다릅니다. blist 패키지도 있지만 표준 라이브러리에는 없습니다.
-
==============================
6.파이썬리스트가 정렬됩니다. 당신이 그들을 분류하면, 그들은 그 길을 유지합니다. Python 2.7에서는 명시 적으로 순서가 지정된 사전을 유지 관리하기 위해 OrderedDict 유형이 추가되었습니다.
파이썬리스트가 정렬됩니다. 당신이 그들을 분류하면, 그들은 그 길을 유지합니다. Python 2.7에서는 명시 적으로 순서가 지정된 사전을 유지 관리하기 위해 OrderedDict 유형이 추가되었습니다.
파이썬에는 집합 (구성원이 고유해야하는 모음)이 있지만 정의에 따라 순서가 지정되지 않습니다. 집합을 정렬하면 목록 만 반환됩니다.
from https://stackoverflow.com/questions/5953205/why-are-there-no-sorted-containers-in-pythons-standard-libraries by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 3.x에서 파이썬의 객체를 상속하는 것이 필요하거나 유용합니까? (0) | 2018.10.29 |
---|---|
[PYTHON] 튜플에 값을 추가하는 방법? (0) | 2018.10.29 |
[PYTHON] 하나의 팬더 데이터 프레임에 팬더 데이터 프레임 목록 결합 (0) | 2018.10.29 |
[PYTHON] 파이썬 문자열을 여러 번 표시 (0) | 2018.10.29 |
[PYTHON] 목록의 목록으로 2 차원 numpy 배열을 변환 [중복] (0) | 2018.10.29 |