리스트와 자료구조 큐
큐(queue)는 임의 데이터에 제한적으로 접근할 수 있는 자료구조의 하나이다.
큐는 한 쪽에서 데이터를 넣으면 다른 쪽에서 데이터를 빼는 자료구조로 FIFO(first in first out)의 구조를 갖는다.
list.append(), list.pop()
리스트 메서드 append와 pop을 사용하면 자료구조 큐를 쉽게 구현할 수 있다.
위의 그림에서 자료구조 큐에 데이터를 넣는 enqueue는 리스트 메서드 append에, 자료구조 큐에서 데이터를 빼는 dequeue는 리스트 메서드 pop에 각각 대응된다.
my_queue = list()
my_queue.append(5)
print('+', my_queue)
my_queue.append(7)
print('+', my_queue)
my_queue.append(10)
print('+', my_queue)
ret = my_queue.pop(0)
print('-', my_queue)
my_queue.append(3)
print('+', my_queue)
ret = my_queue.pop(0)
print('-', my_queue)
ret = my_queue.pop(0)
print('-', my_queue)
ret = my_queue.pop(0)
print('-', my_queue)
collections.deque
데이터를 빼내는 속도 측면에서 리스트를 사용하는 것 보다는 collectons 모듈의 deque를 사용하면 더 효울적일 수 있다.
from collections import deque
my_queue = deque([1, 2, 3])
print(my_queue)
my_queue.append(10)
print(my_queue)
my_queue.append(20)
print(my_queue)
my_queue.popleft()
print(my_queue)
my_queue.popleft()
print(my_queue)
ret = my_queue.popleft()
print(my_queue)
print(ret)
'코딩 > 파이썬 기초' 카테고리의 다른 글
파이썬 튜토리얼 028. del 키워드로 리스트 아이템 삭제 (0) | 2021.07.12 |
---|---|
파이썬 튜토리얼 027. 리스트 컴프리헨션 (list comprehensions) (0) | 2021.07.05 |
파이썬 튜토리얼 025. 리스트와 자료구조 스택 (0) | 2021.07.03 |
파이썬 튜토리얼 024. 리스트 관련 메서드 (list methods) (0) | 2021.07.03 |
[Python] 파이썬 튜토리얼 023. 익명의 함수 정의, 람다 (lambda) (0) | 2021.06.20 |