# deque

deque는 stack과 queue자료구조를 지원하는 모듈입니다.

삽입과 삭제에 연산에 있어 list는 O(N)의 시간복잡도를 가졌다면, deque는 O(1)의 시간복잡도를 가지기 때문에 deque를 사용하는 것이 list를 사용하는 것보다 효율적입니다

 

  deque( [ iterable , maxlen ] ] )  

iterable의 데이터로 deque객체를 생성할 수 있습니다. iterable을 지정하지 않으면 deque는 비어 있습니다.

또한, maxlen 최대 길이가 지정되면 지정된 최대길이로 제한됩니다. (지정되지않거나 None이면 deque의 길이는 계속해서 커질 수 있습니다.) 만약 꽉찬 deque에 데이터가 들어오면 , 새로운 데이터는 추가되고 반대쪽 끝의 기존데이터가 삭제됩니다.

 

# deque의 메서드

deque를 호출하는 방법은 다음과 같습니다.

from collections import deque

[ append(x) ] 

deque의 오른쪽에 x를 추가합니다.

[ appendleft(x) ]

deque의 왼쪽에 x를 추가합니다.

[ clear() ]

deque의 모든 요소를 삭제하고 길이가 0인 상태로 만듭니다

[ copy() ]

deque의 복사본을 만듭니다.

[ count(x) ]

x와 같은 요소의 수를 셉니다.

[ extend(iterable) ]

iterable을 deque의 오른쪽에 붙여 확장합니다.

[ extendleft(iterable) ]

iterable을 deque의 왼쪽에 붙여 확장합니다. ( 왼쪽 추가는 iterable 요소의 순서를 뒤집음 )

[ index(x[,start[,stop]]) ]

deque에 있는 x의 위치 반환합니다.

[ insert(idx, x) ]

deque의 idx위치에 x를 삽입합니다. (삽입으로 인해 maxlen이 초과가 되면 IndexError)

[ pop() ]

deque의 오른쪽에서 요소를 제거하고 반환합니다. (deque가 비어있으면 IndexError)

[ popleft() ]

deque의 dhls쪽에서 요소를 제거하고 반환합니다. (deque가 비어있으면 IndexError)

[ remove(value) ]

value와 일치하는 첫번째 요소를 제거합니다. ( 찾을 수 없으면 ValueError)

[ reverse() ]

deque의 순서를 뒤집고 None 반환합니다.

[ rotate(n=1) ]

n이 양수이면 오른쪽 끝 요소가 왼쪽 끝에 붙습니다(n번 동작, default=1)

n이 음수이면, 왼쪽 끝 요소가 오른쪽 끝에 붙습니다( |n|번 동작)

'Python > Library' 카테고리의 다른 글

datetime  (0) 2022.06.26

+ Recent posts