눈송이의 개발생활

[Python]자료구조 - deque 본문

Programming Languages/Python

[Python]자료구조 - deque

꾸지새미언니

Deque 

== Double-Ended Queue 

큐의 앞과 뒤에서 모두 삽입/삭제가 가능하다  

 

덱을 이용해서 양방향 큐/원형 큐를 구현할 수 있다 

파이썬에서는 collections 모듈 내에 있는 deque를 사용할 수 있다 

 

📌 다양한 함수 

  • append(x) : 맨 끝에 x를 삽입 
  • appendleft(x) : 맨 앞에 x를 삽입
  • pop() : 맨 뒤에 있는 원소 삭제 
  • popleft() : 맨 앞에 있는 원소 삭제
  • clear() : 덱 전체를 비움 (len  == 0) 
  • copy() : 뎃 전체를 복사 
  • count(x) : 덱의 원소 중 x의 개수를 셈 
  • extend(iterable) : iterable 원소들 모두 덱의 맨 끝에 덧붙임 
  • insert(x, i) : index i에 x를 삽입 
  • index(x[, start [, stop]]) : start와 stop 사이에서 x의 위치를 반환 
  • remove(x) : x를 삭제 (덱에서 가장 먼저 나오는)
  • reverse() : 원소의 순서를 역순으로 바꿈
  • rotate(n) : 덱 안의 원소들을 n만큼 이동 
    • n < 0 : 원소들을 왼쪽으로 이동 
    • n > 0 : 원소들을 오른쪽으로 이동 

 

📌 코드 예시 

from collections import deque

dq = deque([1, 2, 3])

print(dq)
# deque([1, 2, 3])

dq.append('z')
dq.appendleft('a')
print(dq)
# deque(['a', 1, 2, 3, 'z'])

dq.pop()
print(dq)
# deque(['a', 1, 2, 3])

dq.rotate(-1)
print(dq)
# deque([1, 2, 3, 'a'])

dq.rotate(2)
print(dq)
# deque([3, 'a', 1, 2])
Comments