반응형
1. Deque를 스택, 큐에 사용하기
from collections import deque
# 만들기(최대길이를 정해둘 수 있다. 처음에 들어갈 때 넘어가면 왼쪽부터 짤린다.
# 그다음부터는 평범하게 밀린다. 이 경우 insert에서 maxlen을 넘기면 에러가 뜬다.)
haha=[3,2,5,6]
dq=deque(haha, maxlen=3)
# append, pop 없을때 pop 하면 에러
dq.pop()
dq.popleft()
dq.append('1')
dq.appendleft('5')
# 확장하기
dq.extend('lol')
dq.extendleft('qeq')
# 중간에 넣고 빼기(비추)
dq[2]='n' # 리스트처럼 인덱싱 수정
#dq.insert(100, 'K') # 없으니까 맨 끝에 'K' 추가
dq.remove('q') # 왼쪽부터 시작해서 'q' 하나 삭제, 없을때 remove하면 ValueError
# reverse
dq.reverse()
# rotate, 시계방향으로 돌리기(음수면 반시계방향)
dq.rotate(2)
파이썬에서 큐, 스택을 표현하기 위해 사용하는 것으로 내부적으로 연결리스트로 구현되어있다.
양방향 큐이고 랜덤 엑세스를 제외하고는 리스트에 비해 append,pop 속도가 빠르기 때문에 사용한다. (데크는 O(1), 리스트는 O(N))
스레드 환경에서 안전하다.
list로 씌우면 다시 리스트로 돌릴 수 있다. 반대도 가능하다.
반응형