-
[파이썬/Python] 파이썬 데크/덱 (deque) 자료구조 알아보기Python 2021. 6. 22. 22:31
이번에는 파이썬으로 알고리즘 문제를 풀면서 많이 접하는 자료구조인 deque를 알아 보겠다.
데크(deque)란?
- 큐를 양방향으로 쓸 수 있게 만든 자료구조
- 양 끝 엘리먼트에 대해서 append와 pop이 가능하다
- 스택과 큐를 동시에 사용이 가능
아직 스택과 큐를 모른다면 아래 링크를 참고!!
2021.05.27 - [Data Structure/Stack] - [자료구조/Data Structure] 파이썬으로 스택(Stack) 자료구조 알아보기
2021.05.30 - [Data Structure/Queue] - [자료구조/Data Structure] 파이썬으로 큐(Queue) 자료구조 알아보기
사용법
from collections import deque deq = deque() # 데이터가 [1,2,3,4,5,6] 이런식으로 있다고 가정하면 # 맨 왼쪽 데이터가 1, 맨 오른쪽 데이터가 6 # 맨 좌측에 데이터를 삽입 deq.appendleft(1) # 맨 우측에 데이터를 삽입 deq.append(0) # 맨 좌측에 데이터를 반환 및 삭제 deq.popleft() # 맨 우측에 데이터를 반환 및 삭제 deq.pop()
위와 같이 deque를 import 해주면 바로 사용이 가능하다.
큐나 스택 자료구조를 알고 있다면 주석을 읽고 deque가 어떤식으로 동작하는지 바로 알 수 있을 것이다.
마지막으로 데크의 여러 메서드를 알아보면서 마치겠다.
데크 (deque)의 메서드
- append(item): item을 데크의 오른쪽 끝에 삽입.
- appendleft(item): item을 데크의 왼쪽 끝에 삽입.
- pop(): 데크의 오른쪽 끝 요소를 리턴하는 동시에 데크에서 삭제.
- popleft(): 데크의 왼쪽 끝 요소를 리턴하는 동시에 데크에서 삭제.
- extend(list): 배열(list)을 순환하면서 데크의 오른쪽에 추가.
- extendleft(list): 배열(list)을 순환하면서 데크의 왼쪽에 추가.
- remove(item): item을 데크에서 찾아 삭제.
- rotate(n): 데크를 n만큼 회전(양수면 오른쪽, 음수면 왼쪽)
'Python' 카테고리의 다른 글
[파이썬/Python] 파이썬의 정렬 방법들 (python sort) (0) 2021.06.12 [파이썬/Python] 파이썬으로 크롤링하기 (0) 2021.06.11 [파이썬/Python] 파이썬 for문 index, value 동시에 접근 하기 (0) 2021.06.07 [파이썬/Python] 파이썬의 접근 제어자 (private) (0) 2021.06.03