📓STUDY/알고리즘

Deque(데크)란 무엇일까 | 파이썬 자료구조 큐(Queue)

두_두 2023. 4. 17. 14:29

deque(데크)란?

from collections import deque

데크는 스택과 큐를 합친 것과 같은, 양방향에서 데이터를 삽입 및 추출할 수 있는 자료형이다.

 

deque의 메소드

append() deque의 맨 뒤에 새로운 요소를 추가함
appendleft() deque의 맨 앞에 새로운 요소를 추가함
pop() deque의 맨 뒤 요소를 꺼내고 deque에서 삭제
popleft() deque의 맨 앞 요소를 꺼내고 deque에서 삭제
index(ele, start, end) start 인덱스부터 end 인덱스까지의 요소들 중 찾고자 하는 요소의 첫 번째 인덱스를 출력
insert(i, a) deque의 i 위치에 a를 삽입
remove() 원하는 요소 삭제 (첫번째로 등장하는 요소만 삭제된다!)
count() deque 안에 요소가 몇 개 존재하는 지 출력
len(dequeue) deque의 길이
extend(iterable) deque의 맨 뒤에 새로운 요소를 추가함 (append와의 차이점은 밑에서 알아보자)
extendleft(iterable) deque의 맨 앞에 새로운 요소를 추가함 (appendleft와의 차이점은 밑에서 알아보자)
reverse() deque의 순서를 반대로 바꿔줌
rotate(num) n만큼 deque를 회전시킴 (양수의 경우 오른쪽으로, 음수의 경우 왼쪽으로 !) 
clear() deque를 비워줌

 

appendextend의 차이

l = [1, 2, 3, 4]
m = [10, 11]
r = list(m)
m.append(l)
r.extend(l)

print(m)
print(r)
Output:
[10, 11, [1, 2, 3, 4]]
[10, 11, 1, 2, 3, 4]
 

append는 요소 전체를 추가해주고, extend는 리스트를 자체적으로 flatten해서 추가해주는 것을 볼 수 있다!

 

 

728x90