리스트보다 앞/뒤에서의 삽입과 삭제가 빠르고 효율적이라서, 스택(stack)과 큐(queue) 모두를 구현
| 구조 | 연산 방식 | 메서드 |
|---|---|---|
| 스택 | LIFO | append(), pop() |
| 큐 | FIFO | append(), popleft() |
| 메서드 | 설명 | 예시 |
|---|---|---|
append(x) |
오른쪽(뒤)에 요소 x 추가 | dq.append(4) → [1, 2, 3, 4] |
appendleft(x) |
왼쪽(앞)에 요소 x 추가 | dq.appendleft(0) → [0, 1, 2, 3] |
extend(iter) |
iterable 요소를 오른쪽에 모두 추가 | dq.extend([4,5]) → [1,2,3,4,5] |
extendleft(iter) |
iterable 요소를 왼쪽에 역순으로 추가 | dq.extendleft([0,-1]) → [-1, 0, 1, 2, 3] |
| 메서드 | 설명 | 예시 |
|---|---|---|
pop() |
오른쪽(뒤) 요소 제거 및 반환 | x = dq.pop() |
popleft() |
왼쪽(앞) 요소 제거 및 반환 | x = dq.popleft() |
remove(x) |
첫 번째로 나오는 x 제거 | dq.remove(2) → [1, 3] |