728x90
(1) Deque(DoubleEndedQueue)란?
- Deque(DoubleEndedQueue)는 앞,뒤 양방향 모두 데이터 처리가 가능한 자료구조이다.
- 큐와 스택 기능을 모두 가지고있어 원하는대로 사용하면 된다.
- Collections 내에 내장되어있어 import collections을 해줘야 사용이 가능하다.
- 장점
- Deque는 어느 방향에서나 거의 동일한 O(1) 성능으로 데크의 양쪽에서 스레드 안전, 메모리 효율적인 추가 및 팝을 지원한다.
(2) Deque Class 및 함수
class collections.deque([iterable[, maxlen]])
- append(x) - 오른쪽에 x값 추가
- appendleft(x) - 왼쪽에 x값 추가
- clear() - 전체 요소 제거
- copy() - deque 복사
- count(x) - x와 같은 요소 갯수
- extend(iterable) - 오른쪽에 반복가능한 인수의 요소를 추가
- extendleft(iterable) - 왼쪽에 반복가능한 인수의 요소를 추가
- index(x) - x의 위치를 반환
- insert(i,x) - x를 i에 삽입
- pop() - 오른쪽 요소를 제거하고 반환
- popleft() - 왼쪽 요소를 제거하고 반환
- remove(x) - 값이 x인 첫번째 항목을 제거
- reverse() - 요소를 뒤집는다
- rotate(n) - n만큼 요소들을 오른쪽으로 이동(맨오른쪽에있는요소는 맨왼쪽으로 이동)
(3) 사용법
from collections import deque
deque = deque()
deque.append('a')
print(deque) #deque(['a'])
deque.appendleft('b')
print(deque) #deque(['b', 'a'])
temp_deque = deque.copy()
print(temp_deque) #deque(['b', 'a'])
deque.clear()
print(deque) #deque([])
deque.extend(temp_deque)
print(deque) #deque(['b', 'a'])
deque.append('c')
print(deque) #deque(['b', 'a', 'c'])
deque.extendleft(temp_deque)
print(deque) #deque(['a', 'b', 'b', 'a', 'c'])
print(deque.index('b')) #1
deque.insert(3,'d')
print(deque) #deque(['a', 'b', 'b', 'd', 'a', 'c'])
print(deque.pop()) #c
print(deque) #deque(['a', 'b', 'b', 'd', 'a'])
print(deque.popleft()) #a
print(deque) #deque(['b', 'b', 'd', 'a'])
deque.remove('d') #deque(['b', 'b', 'a'])
print(deque)
deque.reverse() #deque(['a', 'b', 'b'])
print(deque)
deque.rotate(1) #deque(['b', 'a', 'b'])
print(deque)
반응형
'Study > python' 카테고리의 다른 글
[Python] JWT(Json Web Token) 사용하기 (Flask) (0) | 2021.03.02 |
---|---|
[Python] Cookie Session에 저장 및 불러오기 (Flask) (0) | 2021.03.01 |