리스트와 자료구조 스택
스택(stack)은 임의 데이터에 제한적으로 접근할 수 있는 자료구조의 하나이다.
스택은 한 쪽 끝에서만 접근하여 데이터를 넣거나 뺄 수 있는 자료구조로 LIFO(last in first out)의 구조를 갖는다.
list.append(), list.pop()
리스트 메서드 append와 pop을 사용하면 자료구조 스택을 쉽게 구현할 수 있다.
위의 그림에서 자료구조 스택에 데이터를 넣는 push는 리스트 메서드 append에, 자료구조 스택에서 데이터를 빼는 pop은 리스트 메서드 pop에 각각 대응된다.
my_stack = [3, 4, 5]
print(my_stack)
my_stack.append(6)
print(my_stack)
my_stack.append(7)
print(my_stack)
for i in range(len(my_stack)):
ret = my_stack.pop()
print(ret, my_stack)
아이템이 없는 빈 리스트에 pop 메서드를 사용하면 IndexError가 발생한다.
따라서 리스트 메서드 pop를 사용할 때 리스트에 아이템이 있는지 없는지를 확인하는 코드가 고려될 수 있다.
아래의 코드 예에서는 if my_stack이 이에 해당된다.
my_stack = [3, 4, 5]
print(my_stack)
my_stack.append(6)
print(my_stack)
my_stack.append(7)
print(my_stack)
for i in range(len(my_stack)):
ret = my_stack.pop()
print(ret, my_stack)
if my_stack:
my_stack.pop()
else:
print('my_stack -> empty')
'코딩 > 파이썬 기초' 카테고리의 다른 글
파이썬 튜토리얼 027. 리스트 컴프리헨션 (list comprehensions) (0) | 2021.07.05 |
---|---|
파이썬 튜토리얼 026. 리스트와 자료구조 큐 (0) | 2021.07.04 |
파이썬 튜토리얼 024. 리스트 관련 메서드 (list methods) (0) | 2021.07.03 |
[Python] 파이썬 튜토리얼 023. 익명의 함수 정의, 람다 (lambda) (0) | 2021.06.20 |
[Python] 파이썬 튜토리얼 022. 리스트, 튜플, 딕셔너리 데이터 언패킹 (unpacking list, tuple, dict) (0) | 2021.06.19 |