Backend/Python

[python] deque: 파이썬에서 큐를 구현하고 싶을 때

양원준 2024. 4. 3. 23:38
728x90

 

 

deque는 파이썬에서 큐를 구현할 수 있는 모듈이다

 

deque를 사용하면 무엇이 좋을까?

  • 속도가 리스트에 비해 빠르다
    • 리스트 = O(n)
    • deque = O(1)
  • 큐작업이 굉장히 편해진다

 

deque는 링크드리스트 로 구현되어 있기 때문에 리스트를 이용한 스택을 이용하는 것보다 빠르기 때문에 사용하기 좋다

 

 

 

 

deque의 간단한 사용법을 알아보자면

 

 

아래와 같이 import 해서 사용할 수 있다

 

from collections import deque

 

 

  • append: 오른쪽 끝에 원소 추가
  • appendleft: 왼쪽 끝에 원소 추가
  • pop: 오른쪽 끝에 원소 제거 후 반환
  • popleft: 왼쪽 끝에 원소 제거 후 반환
  • maxlen: 큐의 길이 반환
  • rotate: 큐를 회전
    • rotate(num): num이 양수일 경우 오른쪽으로 회전
    • rotate(num): num이 양수일 경우 왼쪽으로 회전

 

 

from collections import deque

deck = deque()          # 신규 덱(큐) 생성 ([])
deck.append(2) # ([2])
deck.append(4) # ([2,4])

deck.appendleft(1)          # ([1,2,4])
deck.appendleft(3)          # ([3,1,2,4])

b = deck.pop() #([3,1,2])
b #4

c = deck.popleft() #([3,1,2])
c #3

deck_rotate = deque([1,2,3,4,5,6]) #([1,2,3,4,5,6])

deck_rotate.rotate(2) #([5, 6, 1, 2, 3, 4])
deck_rotate.rotate(-4) #([3, 4, 5, 6, 1, 2])

 

 

 

 

 

 

 

728x90