deque
- collections 모듈인 deque는 double-ended queue의 줄임말로, 양방향에서 데이터를 처리할 수 있는 queue형 자료구조이다.
- deque는 list처럼
append()
, pop()
메소드를 사용할 수 있다
- ✅
element in deque
처럼 원소의 유무를 확인할 수 있다.
deque의 메소드
✋append(x) & appendleft(x)
- deque.append(x) :
list.append(x)
와 마찬가지로 x를 deque 오른쪽(끝)에 삽입한다.
- deque.appendleft(x) : x를 deque 왼쪽(처음)에 삽입한다.
from collections import deque
deq = deque(['a', 'b', 'c'])
deq.append('d')
print(deq)
deq = deque(['a', 'b', 'c'])
deq.appendleft('d')
print(deq)
✋pop() & popleft()
- deque.pop() :
list.pop()
과 마찬가지로 가장 오른쪽(끝)의 원소를 제거하고 값을 반환한다
- deque.popleft() : 가장 왼쪽(처음)의 원소를 제거하고 값을 반환한다
from collections import deque
deq = deque(['a', 'b', 'c'])
print(deq.pop())
print(deq)
deq = deque(['a', 'b', 'c'])
print(deq.popleft())
print(deq)
✋remove(x) & clear()
- deque.remove(x) : 인자로 넣은 데이터를 deque에서 삭제한다
- deque.clear() : deque안의 모든 맴버를 삭제한다
from collections import deque
deq = deque(['a','b','c','d'])
deq.remove('a')
print(deq)
deq.clear()
print(deq)
✋rotate(n) & reverse()
- deque.rotate(n) : 요소들(elements)을 n값 만큼 회전 해주는 메소드
- n 이 양수이면 👉 가장 오른쪽 데이터를 pop해서 appendleft한다
- n 이 음수이면 👉 가장 왼쪽 데이터를 pop해서 append한다
- deque.reverse() : deque안의 모든 데이터를 통째로 뒤집어 버린다
from collections import deque
deq = deque(['a','b','c','d'])
deq.reverse()
print(deq)
deq = deque(['a', 'b', 'c', 'd', 'e'])
deq.rotate(1)
print(' '.join(deq))
deq2 = deque(['a', 'b', 'c', 'd', 'e'])
deq2.rotate(2)
print(' '.join(deq2))
deq3 = deque(['a', 'b', 'c', 'd', 'e'])
deq3.rotate(-1)
print(' '.join(deq3))
deq4 = deque(['a', 'b', 'c', 'd', 'e'])
deq4.rotate(-2)
print(' '.join(deq4))
✋extend(iterable) & extendleft(iterable)
- deque.extend(iterable) : 기본 deque에 iterable 데이터를 오른쪽(끝)에 합친다
- deque.extendleft(iterable) : 기본 deque에 iterable 데이터를 왼쪽(처음)에 합친다
from collections import deque
deq = deque(['a','b','c','d'])
sampleData = ['z','k','e','r']
deq.extend(sampleData)
print(deq)
deq = deque(['a','b','c','d'])
deq.extendleft(sampleData)
print(deq)
✅deque -> list
deq = deque(['a','b','c','d'])
print(list(deq))
✅deque는 sort가 안된다
- 먼저 list에 값을 담고
- list.sort() 로 정렬하고
- q = deque(list) 로 변환한다