본문 바로가기
개념정복💫/파이썬 PYTHON 정복

[PYTHON] deque에 대해 알아보자

by 옹쑥이 2024. 1. 10.

DEQUE

: 스택과 큐의 기능을 모두 가진 객체로 출입구를 양쪽에 가지고 있음.

따라서, 스택처럼 사용이 가능하고 큐처럼 사용도 가능함.


1. 스택 구현

스택은 오른쪽 끝(마지막)에서 입출력

  • append() : 입력 시, 사용
  • pop() : 출력 시, 사용

2. 큐 구현

왼쪽(처음)에서 입력, 오른쪽(마지막)에서 출력

  • appendleft() : 왼쪽에 값을 입력 시, 사용
  • pop() : 오른쪽 출력 시, 사용
  • append() : 오른쪽에 값을 입력 시, 사용
  • popleft() : 왼쪽 출력 시, 사용

참고🐣

pop()

리스트의 맨 마지막 원소를 리턴하고 해당 원소는 삭제

pop(i)는 리스트의 i번째 원소를 리턴하고 삭제

i = [0, 1, 2, 3]

i.pop()
print(i) #[0, 1, 2]

--------------------

i.pop(0)
print(i) #[1, 2]

 

3. 리스트처럼 사용

리스트처럼 내용 수정이나 입력, 삭제 가능

  • insert(0, 'L') : 첫번째 항목에 'L' 추가
  • remove('L') : 'L'항목 삭제
  • dq[2] = 'L' : 2번째 값을 'L'로 수정

4. 리스트처럼 사용

좌우로 반전을 시키고 싶을 때에는 reverse() 사용

 

5. 회전

rotate()함수를 사용하면 회전이 가능함.
함수 안에 음수를 넣으면 왼쪽 회전, 양수는 오른쪽 회전.

rotate(양수)

: 맨 뒤에 있는 값이 앞으로 이동

import sys, collections
input = sys.stdin.readline

test = collections.deque([1, 2, 3, 4])
test.rotate(1)
print(test)

//결과값
deque([4, 1, 2, 3])

 

rotate(음수)

: 맨 앞에 있는 값이 뒤로 이동

import sys, collections
input = sys.stdin.readline

test = collections.deque([1, 2, 3, 4])
test.rotate(-1)
print(test)

//결과값
deque([2, 3, 4, 1])