데크는 스택과 큐를 일반화 한 것입니다 (이름은 《deck》이라고 발음하며 《double-ended queue》의 약자입니다). 데크는 스레드 안전하고 메모리 효율적인 데크의 양쪽 끝에서의 추가(append)와 팝(pop)을 양쪽에서 거의 같은 성능으로 지원합니다.
출처: https://docs.python.org/ko/3.9/library/collections.html
append(x)
, insert(0,x
) 하는 것은 이다.from collections import deque
if __name__ == '__main__':
dq=deque()
list
-> deque
from collections import deque
if __name__ == '__main__':
build=[3,2,1,3,4]
dq=deque( build ) <- 기존 list인 'build'를 deque로 만듦
<int>
)append()
시, index[0]
값을 빼고 append()
한다.appendleft()
시, index[-1]
값을 빼고 appendleft()
를 수행한다.dq=deque()
dq.append(1)
dq.append(2)
print(dq[1]) # 2
dq.count(3)
index(x[, start[, stop]])
데크에 있는 x의 위치를 반환합니다 (인덱스 start 또는 그 이후, 그리고 인덱스 stop 이전). 첫 번째 일치를 반환하거나 찾을 수 없으면 ValueError를 발생시킵니다.
append(x)
데크의 오른쪽에 x를 추가합니다.
appendleft(x)
데크의 왼쪽에 x를 추가합니다.
insert(i, x)
x를 데크의 i 위치에 삽입합니다.
삽입으로 인해 제한된 길이의 데크가 maxlen 이상으로 커지면, IndexError가 발생합니다.
데크에서 모든 요소를 제거하고 길이가 0인 상태로 만듭니다.
copy()
데크의 얕은 복사본을 만듭니다.
버전 3.5에 추가.
count(x)
x 와 같은 데크 요소의 수를 셉니다.
버전 3.2에 추가.
extend(iterable)
iterable 인자에서 온 요소를 추가하여 데크의 오른쪽을 확장합니다.
extendleft(iterable)
iterable에서 온 요소를 추가하여 데크의 왼쪽을 확장합니다. 일련의 왼쪽 추가는 iterable 인자에 있는 요소의 순서를 뒤집는 결과를 줍니다.
value의 첫 번째 항목을 제거합니다. 찾을 수 없으면, ValueError를 발생시킵니다.
데크의 요소들을 제자리에서 순서를 뒤집고 None을 반환합니다.
dq.rotate(n=1)
데크 객체는 하나의 읽기 전용 어트리뷰트도 제공합니다:
dq.extend(iterable)