[Python] deque

민지의 회고록·2023년 1월 12일

1. deque

  • 양방향 큐(queue)
    • 일반 큐는 선입선출(FIFO)로 작동
    • 앞뒤 양쪽으로 원소를 넣고 뺄 수 있음
    • list O(n) < deque O(1) -> deque가 더 빠름


2. deque 메소드

from collections import deque

deq = deque()

# Add element to the start
deq.appendleft(10)

# Add element to the end
deq.append(0)

# Pop element from the start
deq.popleft()

# Pop element from the end
deq.pop()

# Extend element to the start
deq.extend(iterable)

# Extend element to the end
deq.extendleft(iterable)

# Find the element and remove from the deque
deq.remove(1)
  • deq(iterable) : deque 생성
  • deq.append(element) : 요소를 오른쪽으로 삽입
  • deq.appendleft(element) : 요소를 왼쪽으로 삽입
  • deq.pop(element) : 오른쪽 끝에 원소 삭제
  • deq.popleft(element) : 왼쪽 끝에 원소 삭제

deq = deque(['a', 'b', 'c'])

# Extend element to the start
deq.extend('df')
# --> deq = (['a', 'b', 'c', 'd', 'f'])

# Extend element to the end
deq.extendleft('df')
# --> deq = (['d', 'f', 'a', 'b', 'c'])

# Find the element and remove from the deque
deq.remove('a')
# --> deq = (['b', 'c', 'd', 'f'])
  • deque.extend(iterable) : 오른쪽으로 iterable 원소 삽입
  • deque.extendleft(iterable) : 왼쪽으로 iterable 원소 삽입
  • deque.remove(element) : 특정 원소 삭제
deq = deque([11,33,44,55,66,77])

deq.rotate(1)
print(deq)
# deque([77,11,33,44,55,66])

deq.rotate(-1)
print(deq)
# deque([11,33,44,55,66,77])
  • deque.rotate(num) : 데크를 num만큼 회전한다(양수 - 오른쪽, 음수 - 왼쪽)
profile
민지가 공부한 내용을 회고합니다~~

0개의 댓글