- Python - 프로그래밍 시작하기
- Python 기초 (Basics)
- Python 변수 (Variables)
- Python 연산자 (Operators)
- Python 리스트 (List)
- Python 튜플 (Tuple)
- Python 문자열 (Strings)
- Python 집합 (Sets)
- Python 딕셔너리 (Dictionary)
- Python 흐름 제어 (Flow control)
- Python 함수 (Function)
- Python 클래스 (Class)
- Python 내장 함수 (Built-in function)
- Python 키워드 (Keyword)
- Keyword - and
- Keyword - as
- Keyword - assert
- Keyword - break
- Keyword - class
- Keyword - continue
- Keyword - def
- Keyword - del
- Keyword - elif
- Keyword - else
- Keyword - except
- Keyword - False
- Keyword - for
- Keyword - from
- Keyword - global
- Keyword - if
- Keyword - import
- Keyword - in
- Keyword - is
- Keyword - lambda
- Keyword - None
- Keyword - not
- Keyword - or
- Keyword - pass
- Keyword - return
- Keyword - True
- Keyword - try
- Keyword - while
- Python 파일 다루기
- Python datetime 모듈
- Python time 모듈
- Python collections.deque
- Python collections.namedtuple
- Python의 선 (Zen of Python)
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
Python collections.deque¶
‘deque’는 ‘double-ended queue’의 줄임말로서 스택과 큐를 합친 것과 같은, 양방향에서 데이터를 삽입 및 추출할 수 있는 자료형입니다.
‘deque’는 ‘deck’(덱)으로 발음합니다.
파이썬 리스트 객체도 비슷한 작업들을 제공하지만, deque는 빠른 고정 길이 작업에 최적화되었습니다.
이 페이지에서는 collections 모듈의 deque 객체에서 사용할 수 있는 다양한 메서드의 사용에 대해 소개합니다.
순서는 아래와 같습니다.
1. append()¶
from collections import deque
deq1 = deque([1, 2, 3])
deq1.append(4)
print(deq1)
deque([1, 2, 3, 4])
append()는 리스트에서와 같이 deque의 끝(오른쪽)에 값을 추가합니다.
2. appendleft()¶
from collections import deque
deq2 = deque([1, 2, 3])
deq2.appendleft(0)
print(deq2)
deque([0, 1, 2, 3])
appendleft()는 deque의 앞(왼쪽)에 값을 추가합니다.
3. pop()¶
from collections import deque
deq3 = deque([1, 2, 3])
deq3_last = deq3.pop()
print(deq3_last)
print(deq3)
3
deque([1, 2])
pop()은 deque의 오른쪽에서 데이터 하나를 가져와서 반환합니다. deque에서 그 값은 삭제되며, 가져올 요소가 없다면 IndexError를 일으킵니다.
4. popleft()¶
from collections import deque
deq4 = deque([1, 2, 3])
deq4_first = deq4.popleft()
print(deq4_first)
print(deq4)
1
deque([2, 3])
popleft()는 deque의 왼쪽에서 데이터 하나를 가져와서 반환합니다. deque에서 그 값은 삭제되며, 가져올 요소가 없다면 IndexError를 일으킵니다.
5. deque(maxlen=n)¶
from collections import deque
deq5 = deque(maxlen=3)
for i in range(5):
deq5.append(i)
print(deq5)
deque([0], maxlen=3)
deque([0, 1], maxlen=3)
deque([0, 1, 2], maxlen=3)
deque([1, 2, 3], maxlen=3)
deque([2, 3, 4], maxlen=3)
maxlen=n은 deque의 최대 길이를 n으로 제한합니다.
위의 예제에서 볼 수 있듯이 deque 객체의 길이가 3으로 제한되어서, 오른쪽으로 값이 추가되면 왼쪽에서부터 값이 삭제됩니다.
6. reverse()¶
from collections import deque
deq6 = deque([1, 2, 3])
deq6.reverse()
print(deq6)
deque([3, 2, 1])
reverse()는 deque의 순서를 뒤집습니다.
7. count()¶
from collections import deque
deq7 = deque([1, 3, 2, 4, 2, 3, 1])
count_2 = deq7.count(2)
print(count_2)
2
count(x)는 deque에 포함된 x의 개수를 반환합니다.
8. rotate()¶
from collections import deque
deq8 = deque([1, 2, 3])
deq8.rotate(1) # Shift to the right
print(deq8)
deq8.rotate(-2) # Shift to the left
print(deq8)
deque([3, 1, 2])
deque([2, 3, 1])
rotate()는 입력한 수만큼 deque의 값들을 (오른쪽으로) 이동합니다. 입력한 값이 음수라면 왼쪽으로 이동합니다.
rotate(n=1)은 appendleft(d.pop())와 동일하고, rotate(n=-1)은 append(d.popleft())와 동일합니다.