눈송이의 개발생활
[Python]자료구조 - deque 본문
Deque
== Double-Ended Queue
큐의 앞과 뒤에서 모두 삽입/삭제가 가능하다
덱을 이용해서 양방향 큐/원형 큐를 구현할 수 있다
파이썬에서는 collections 모듈 내에 있는 deque를 사용할 수 있다
📌 다양한 함수
- append(x) : 맨 끝에 x를 삽입
- appendleft(x) : 맨 앞에 x를 삽입
- pop() : 맨 뒤에 있는 원소 삭제
- popleft() : 맨 앞에 있는 원소 삭제
- clear() : 덱 전체를 비움 (len == 0)
- copy() : 뎃 전체를 복사
- count(x) : 덱의 원소 중 x의 개수를 셈
- extend(iterable) : iterable 원소들 모두 덱의 맨 끝에 덧붙임
- insert(x, i) : index i에 x를 삽입
- index(x[, start [, stop]]) : start와 stop 사이에서 x의 위치를 반환
- remove(x) : x를 삭제 (덱에서 가장 먼저 나오는)
- reverse() : 원소의 순서를 역순으로 바꿈
- rotate(n) : 덱 안의 원소들을 n만큼 이동
- n < 0 : 원소들을 왼쪽으로 이동
- n > 0 : 원소들을 오른쪽으로 이동
📌 코드 예시
from collections import deque
dq = deque([1, 2, 3])
print(dq)
# deque([1, 2, 3])
dq.append('z')
dq.appendleft('a')
print(dq)
# deque(['a', 1, 2, 3, 'z'])
dq.pop()
print(dq)
# deque(['a', 1, 2, 3])
dq.rotate(-1)
print(dq)
# deque([1, 2, 3, 'a'])
dq.rotate(2)
print(dq)
# deque([3, 'a', 1, 2])
'Programming Languages > Python' 카테고리의 다른 글
[Python]내장 함수 - zip() (0) | 2022.03.05 |
---|---|
[Python]itertools - permutations, combinations (순열과 조합) (0) | 2022.01.15 |
[Python]String 관련 함수 - join, reversed (0) | 2022.01.13 |
Comments