collections 모듈이란?
- 기존의 자료구조(리스트, 큐, 스택, 튜플, 딕셔너리)에서 좀 더 확장하여 제작된 파이썬 내장 모듈
- deque(데크, double-ended queue) 모듈은 스택과 큐를 모두 지원하는 모듈
+ 양방향으로 데이터를 입출력 할 수 있는 자료구조
#1. 아무요소 없는 deque 생성
deque_list = deque()
print(deque_list)
#2. deque 에 숫자 넣어주기 (기존리스트와 동일)
for i in range(5):
deque_list.append(i)
print(deque_list)
-- 결과값
#1. deque([])
#2. deque([0, 1, 2, 3, 4])
- deque 요소 삭제 시 pop(0)지원안됨
- deque_list.pop() : 우측부터 삭제
# deque 에서는 pop(0)지원안됨(왼쪽부터 삭제)
# 우측부터 삭제(LIFO)
print(deque_list.pop())
-- 결과값
4
- deque_list.clear() : 리스트값 전부삭제
- appendleft : 왼쪽부터 값 삽입
deque_list.clear()
print(deque_list)
for i in range(5):
deque_list.appendleft(i)
print(deque_list)
-- 결과값
deque([])
deque([0])
deque([1, 0])
deque([2, 1, 0])
deque([3, 2, 1, 0])
deque([4, 3, 2, 1, 0])
-- 결과값 (FIFO)
0
- deque 모듈은 원형 연결리스트 (Linked List)의 특성을 지원
- 연결 리스트는 데이터를 저장할 때, 요소의 값을 한 쪽으로 연결한 후, 요소의 다음값의 주소값을 저장하여 연결하는 기법
- rotate : 요소들을 n 만큼 회전 해주는 메소드
- 단, 양수이면 시계방향(오른쪽) 회전 / 음수이면 반시계방향(왼쪽)으로 이동
# rotate 1
deque_list.rotate(1)
print(deque_list)
# rotate -1
deque_list.rotate(-1)
print(deque_list)
-- rotate 결과값
deque([4, 3, 2, 1, 0])
deque([0, 4, 3, 2, 1])
deque([4, 3, 2, 1, 0])
-- reversed 결과값
deque([0, 1, 2, 3, 4])
- extend() : 리스트를 우측에 붙인다
- extendleft() : 리스트를 좌측에 붙임
deque_list.extend([5,6,7])
print(deque_list)
deque_list.extendleft([8,9,10])
print(deque_list)
-- 결과값
deque([4, 3, 2, 1, 0])
deque([4, 3, 2, 1, 0, 5, 6, 7])
deque([10, 9, 8, 4, 3, 2, 1, 0, 5, 6, 7])
- maxlen 매개변수 : deque 사이즈를 고정시켜 이전값 삭제
basedata = ['a','b','c','d','e']
deque_list = deque(basedata,maxlen=3)
print(deque_list)
-- 결과값
deque(['c', 'd', 'e'], maxlen=3)
print(deque_list)
-- 결과값 (popleft 왼쪽부터 삭제)
deque(['d', 'e'], maxlen=3)
지금까지 collection 모듈의 deque모듈에 대해 알아보았습니다
'파이썬 Phyton' 카테고리의 다른 글
[파이썬 코딩] 리스트를 문자로 변환 (0) | 2023.07.17 |
---|---|
[파이썬 코딩] Cos Pro 1급 4차 문제5 - 규칙에 맞는 숫자 생성 (deque, 리스트를 문자로 변환 ) (0) | 2023.07.17 |
[파이썬 코딩] Cos Pro 1급 4차 문제1 - 사전에서 단어찾기 (0) | 2023.07.17 |
[파이썬 코딩] Cos Pro 1급 3차 문제1 - 배열을 회전시켜보세요 (0) | 2023.07.17 |
[파이썬 코딩] Cos Pro 1급 1차 문제5 - 소용돌이 수 (0) | 2023.07.16 |