Remarks
이 글은 전문가를 위한 파이썬(Fluent Python)을 정리한 자료입니다.
2.9.3 NumPy와 SciPy
-
고정밀 성능 측정 타이머
from time import perf_counter as pc t0 = pc(); floats /= 3; pc() - t0
2.9.4 덱 및 기타 큐
- 리스트에서 왼쪽에 삽입하거나 삭제하는 연산은 전체 리스트를 이동시켜야 하므로 비용이 크다.
collections.deque
클래스는 큐의 양쪽에서 빠르게 삽입, 삭제할 수 있는 thread-safe 양방향 큐다. - 그러나, 중간 항목을 삭제하는 연산은 그리 빠르지 않다.
from collections import deque
dq = deque(range(5), maxlen=5) # [0, 1, 2, 3, 4]
dq.rotate(3) # [2, 3, 4, 0, 1]
dq.rotate(-4) # [1, 2, 3, 4, 0]
dq.appendleft(-1) # [-1, 1, 2, 3, 4]
dq.extend([11, 22]) # [2, 3, 4, 11, 22]
dq.extendleft([10, 20]) # [20, 10, 2, 3, 4]
dq.popleft() # [10, 2, 3, 4]
읽을거리
sorted()
,list.sort()
에 사용된 정렬 알고리즘은 팀 정렬(Timesort)로, 데이터의 정렬된 정도에 따라 삽입 정렬과 병합 정렬 사이를 전환하는 적응형 알고리즘이다. 실세계 데이터에는 정렬된 데이터 덩어리들이 들어 있는 경우가 많아 상당히 효율적이다.
PREVIOUSEtc