: 먼저 넣은 데이터를 먼저 출력
import queue #라이브러리 명
data_queue = queue.Queue() #queue라이브러리안에 존재하는 Queue클래스
data_queue.put("funcoding")
data_queue.put(1)
# put을 통해 데이터 추가
data_queue.qsize()
# queue 사이즈 출력
# 2
data_queue.get()
# get을 통해 데이터를 출력 -> 맨 처음으로 넣어진 데이터 출력
# 큐에서 제거됨
# 인자 넣을 필요 없음
# funcoding
data_queue.qsize()
# 1
data_queue.get()
# 1
data_queue.qsize()
#0
: 나중에 넣은 데이터를 먼저 출력
import queue
data_queue=queue.LifoQueue()
data_queue.put("funcoding")
data_queue.put(1)
data_queue.qsize()
# 2
data_queue.get()
# 1
# LifoQueue는 마지막에 넣은 데이터를 먼저 출력
: 우선순위가 높은 데이터 먼저 출력
import queue
data_queue=queue.PriorityQueue()
# 우선순위도 같이 넣어주어야 하기 때문에,
# **(우선순위, 데이터)처럼 튜플 형태로 데이터 넣음**
data_queue.put((10, "korea"))
data_queue.put((5,1))
data_queue.put((15,"china"))
data_queue.qsize()
# 3
data_queue.get()
# (5,1)
# 숫자 값이 낮을 수록 우선순위가 더 높음
# 즉, 우선순위가 더 높은 데이터 먼저 출력
data_queue.get()
# (10, "korea")
연습 1) 리스트 변수로 큐를 다루는 enqueue, dequeue 기능 구현해보기
queue_list=list()
#데이터를 넣는 enqueue함수 구현
def enqueue(data):
queue_list.append(data)
#데이터를 빼는 dequeue함수 구현
def dequeue():
# 먼저 들어간 데이터를 먼저 빼야하므로
# 가장 앞에 있는 데이터를 추출
data=queue_list[0]
# 추출한 데이터 삭제
del queue_list[0]
# 추출한 데이터 반환
return data
for index in range(10):
enqueue(index)
len(queue_list)
#10
dequeue()
#0
dequeue()
1