Search
Duplicate

Queue 사용법

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Python
Scrap
태그
Development
9 more properties

들어가기 전에

C++에서의 Queue

Python에서의 Queue

deque
from collections import deque q = deque()
Python
복사
collections 모듈의 deqeue은 double-ended queue의 약자로, 데이터를 양방향에서 추가하고 제거할 수 있습니다. 따라서 deque을 잘 이용하면 stack과 queue 둘 모두로 구현이 가능합니다.

Deque을 Queue로 사용하기

FIFO (First In First Out) 구조.

push → append()

pop → popleft()

>>> from collections import deque >>> q = deque() >>> q.append(3) >>> q.append(4) >>> print(q) deque([3, 4]) >>> q.popleft() 3
Python
복사
append를 통해 q에 값을 넣고, popleft를 통해 q에서 값을 뽑아냅니다.

또는

push → appendleft()

pop → pop()

>>> from collections import deque >>> q = deque() >>> q.appendleft(3) >>> q.appendleft(4) >>> print(q) deque([4, 3]) >>> q.pop() 3
Python
복사
appendleft를 통해 q에 값을 넣고, pop을 통해 q에서 값을 뽑아냅니다.

Queue에 list와 tuple 형태로 넣기

→ list

>>> q.append([1,2,3]) >>> q.append([4]) >>> print(q) deque([[1, 2, 3], [4]]) >>> q.popleft() [1, 2, 3] >>> q.popleft() [4]
Python
복사
q에 list 형태로 값을 넣으면, list 형태 그대로 나오게 됩니다.

→ tuple

>>> q.append((1,2,3)) >>> q.append((4,)) >>> print(q) deque([(1, 2, 3), (4,)]) >>> q.popleft() (1, 2, 3) >>> q.popleft() (4,)
Python
복사
tuple도 마찬가지로 tuple형태 그대로 나오게 됩니다.
tuple의 값을 pop 하면서 원하는 변수에 바로 저장하기
>>> q.append((1,2,3)) >>> x,y,z = q.popleft() >>> print(x, y, z) 1 2 3
Python
복사
위와 같은 작업도 가능하게 됩니다.