deque 객체

2021. 3. 22. 15:13Study/algorithm

반응형

image

정의

class collections.deque([iterable,[maxlen]])

collections(컨네이너 데이터형) 에 deque객체

iterable의 데이터로 왼쪽에서 오른쪽으로 (append()를 사용해서) 초기화된 새 데크(deque) 객체를 반환한다.

iterable을 지정하지 않으면, 새 데크는 비어 있다.

데크(double-ended queue)는 스택과 큐를 일반화 한 것이다.

데크는 스레드 안전하고 메모리 효율적인 데크의 양쪽 끝에서의 추가(append)와 팝(pop)을 양쪽에서 거의 같은 O(1) 성능으로 지원한다.

maxlen이 지정되면 최대 길이가 제한된다. 지정되지 않거나 None이면, 데크는 임의의 길이로 커질 수 있다.

 

deque 객체의 메서드

append(x) - 데크의 오른쪽에 x를 추가한다.

appendleft(x) - 데크의 왼쪽에 x를 추가한다.

clear() - 데크에서 모든 요소를 제거하고 길이가 0인 상태로 만든다.

copy() - 데크의 얕은 복사본을 만든다.

count(x) - x와 같은 데크 요소의 수를 센다.

extend(iterable) - iterable 인자에서 온 요소를 추가하여 데크의 오른쪽을 확장한다.

extendleft(iterable) - iterable에서 온 요소를 추가하여 데크의 왼쪽을 확장한다. 일련의 왼쪽 추가는 iterable 인자에 있는 요소의 순서를 뒤집는 결과를 준다.

index(x,[start, stop]) - 데크에 있는 x의 위치를 반환한다.(start 이후 stop 이전) 첫 번째 일치를 반환하거나 찾을 수 없으면 ValueError를 발생시킨다.

insert(i,x) - x를 데크의 i위치에 삽입한다. 삽입으로 인해 제한된 길이의 데크가 maxlen 이상으로 커지면 indexError가 발생한다.

pop() - 데크의 오른쪽에서 요소를 제거하고 반환한다. 요소가 없으면 indexError를 발생시킨다.

popleft() - 데크의 왼쪽에서 요소를 제거하고 반환한다. 요소가 없으면, indexError를 발생시킨다.

remove(value) - value의 첫 번재 항목을 제거한다. 찾을 수 없으면 valueError를 발생시킨다.

reverse() - 데크의 요소들을 제자리에서 순서를뒤집고 None을 반환한다.

rotate(n=1) - 데크를 n단계 오른쪽으로 회전한다. n이 음수이면, 왼쪽으로 회전한다. 데크가 비어 있지 않으면, 오른쪽으로 한 단계 회전하는 것은 d.appendleft(d.pop())와 동등하고, 왼쪽으로 한 단계 회전하는 것은 d.append(d.popleft())와 동등하다.

maxlen - 데크의 최대 크기 또는 제한이 없으면 None

 

출처

https://medium.com/@rasmussen.matias/fun-with-deques-in-python-31942bcb6321
https://docs.python.org/ko/3/library/collections.html?highlight=deque#collections.deque

반응형

'Study > algorithm' 카테고리의 다른 글

정렬 알고리즘  (0) 2021.04.01
재귀함수 연습  (0) 2021.03.30
BFS DFS  (0) 2021.03.21
파이참 디버깅 오류 : module 'queue' has no attribute 'Queue'  (0) 2021.03.18
구현 알고리즘  (0) 2021.03.16