본문 바로가기
성장하기/Python

deque

by 솔로 슈퍼스타 2023. 6. 14.
728x90

deque는 파이썬의 내장 모듈인 collections 모듈에 있는 클래스로, 양쪽 끝에서의 빠른 추가 및 삭제 연산이 가능한 큐(Queue)와 스택(Stack)의 기능을 모두 제공하는 자료구조입니다.

deque는 "double-ended queue"의 약자로, 리스트(List)와 유사하지만 리스트보다 효율적인 연산을 수행할 수 있습니다. deque는 맨 앞과 맨 뒤에서의 요소 추가 및 삭제가 O(1)의 시간 복잡도로 가능하며, 리스트의 인덱스에 따른 접근도 가능합니다.

아래는 deque의 주요 기능과 사용법을 간단한 예시와 함께 설명한 코드입니다:

from collections import deque

# 빈 deque 생성
my_deque = deque()

# 오른쪽에 요소 추가
my_deque.append(1)
my_deque.append(2)
my_deque.append(3)

# 왼쪽에서 요소 추가
my_deque.appendleft(0)

# deque 출력
print(my_deque)  # 출력: deque([0, 1, 2, 3])

# 오른쪽에서 요소 제거
item1 = my_deque.pop()
print(item1)  # 출력: 3

# 왼쪽에서 요소 제거
item2 = my_deque.popleft()
print(item2)  # 출력: 0

# deque 출력
print(my_deque)  # 출력: deque([1, 2])

위의 코드에서는 deque를 생성하고, append() 메서드를 사용하여 오른쪽에서 요소를 추가하고, appendleft() 메서드를 사용하여 왼쪽에서 요소를 추가합니다. pop() 메서드를 사용하면 오른쪽에서 요소를 제거하고 반환하고, popleft() 메서드를 사용하면 왼쪽에서 요소를 제거하고 반환합니다. 마지막으로 deque를 출력하면 현재의 요소들이 표시됩니다.

deque는 큐(Queue)와 스택(Stack)의 기능을 모두 제공하며, 효율적인 요소 추가 및 삭제가 가능하다는 특징을 가지고 있습니다. 이를 통해 데이터 처리를 더욱 효율적으로 수행할 수 있습니다.

'성장하기 > Python' 카테고리의 다른 글

any  (0) 2023.06.14
append() 와 extend() 의 차이  (0) 2023.06.14
zip  (0) 2023.06.14
reduce  (0) 2023.06.14
Counter  (0) 2023.06.14