List 사용하기
삽입 : append() 활용
삭제 : pop(0)
주의 : pop(0)은 시간복잡도가 O(N)이므로 pop이 자주 발생하는 상황에서는 비효율적이다.
collections 모듈의 deque 사용하기
from collections import deque
#선언
dq = deque([])
#삽입
dq.append(1)
#삭제 : 원소가 없다면 IndexError발생
dq.popleft()
#전체 삭제
dq.clear()
#count : x와 같은 원소의 개수 세기
dq.count(x)
#회전 : n만큼 위치 이동 (n>0이면 오른쪽, n<0이면 왼쪽으로 이동)
dq.rotate(n)
#뒤집기
dq.reverse()
#max size (제한되지 않았다면 None)
dq.maxlen()
Queue활용 뿐 아니라 deque에 있는 함수들도 추가로 몇 개 정리해봤다. 나중에 deque 활용을 위해 함수들을 한번 더 정리해봐야겠다.
queue 모듈의 Queue 사용하기
from queue import Queue
#선언
q = Queue()
#삽입
q.put('데이터')
#삭제(꺼내기)
q.get()
#size
q.qsize()
#비어있으면 True, 아니면 False
q.empty()
#Queue가 꽉 차 있으면 True, 아니면 False
q.full()
list와 deque의 시간복잡도 비교
List | Deque |
---|---|