PYTHON · 컬렉션
deque 활용
deque는 양끝에서 O(1)으로 삽입/삭제가 가능한 양방향 큐입니다.
컬렉션중급deque큐양방향 큐슬라이딩 윈도우
핵심 설명
deque는 양끝에서 O(1)으로 삽입/삭제가 가능한 양방향 큐입니다.
Python code
from collections import deque
# 기본 사용
dq = deque([1, 2, 3, 4, 5])
dq.appendleft(0) # 왼쪽 추가
dq.append(6) # 오른쪽 추가
print(dq) # deque([0, 1, 2, 3, 4, 5, 6])
dq.popleft() # 왼쪽 제거 O(1)
dq.pop() # 오른쪽 제거 O(1)
# 회전
dq.rotate(2) # 오른쪽으로 2칸
print(dq)
dq.rotate(-2) # 왼쪽으로 2칸
# maxlen: 고정 크기 버퍼 (슬라이딩 윈도우)
buffer = deque(maxlen=3)
for i in range(5):
buffer.append(i)
print(f" 추가 {i}: {list(buffer)}")
# 마지막: [2, 3, 4]
# 이동 평균 계산
def moving_avg(data, window=3):
buf = deque(maxlen=window)
results = []
for val in data:
buf.append(val)
results.append(sum(buf) / len(buf))
return results
prices = [100, 102, 104, 103, 105, 107]
print(moving_avg(prices, 3))학습 팁
maxlen 설정된 deque는 가득 차면 반대쪽 원소를 자동으로 제거하여 슬라이딩 윈도우에 적합합니다.
주의할 점
deque의 인덱스 접근은 O(n)입니다. 랜덤 접근이 빈번하면 리스트를 사용하세요.
자주 묻는 질문
deque 활용란 무엇인가요?
deque 는 양끝에서 O(1)으로 삽입/삭제가 가능한 양방향 큐입니다.
deque 활용 학습 시 주의할 점은 무엇인가요?
deque 의 인덱스 접근은 O(n)입니다. 랜덤 접근이 빈번하면 리스트를 사용하세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.