# Created by ARA on 2022-08-09.
# 이것이 코딩테스트다
# Ch05-DFS/BFS-꼭 필요한 자료구조 기초
stack = []
# 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
stack.append(5)
stack.append(2)
stack.append(3)
stack.append(7)
stack.pop()
stack.append(4)
stack.pop()
print(stack)
print(stack[::-1])
# Expected Output
# [5, 2, 3]
# [3, 2, 5]
코딩테스트 책을 보는데, 18번 줄에서의 stack[::-1]이 무엇을 의미하는지 이해가 안됐다.
그래서 인터넷을 찾아보고 알아본 걸 정리해본다.
일단 우선 python [] 연산자에 대해서 찾아봤다.
c++ 에서 검색했던 것과는 다르게 별 다른 내용이 나오질 않았다.
어쩌다보니 slicing이라는 키워드를 찾게 되었는데, 거기에 해당하는 내용이 있었다.
(막상 정식 문서 가서 찾아보려니 위와 같은 예제는 찾질 못하겠다... 혹시라도 나중에 찾게 되면 추가하겠다.)
이 사이트에서 문법을 설명하는데, 내가 알고 있는 것과 동일했다.
다만 뒤에 Step이 있는 지 몰랐다.
자세히 읽어보니 다음 요소(element)를 선택할 때 기준을 말하는 거 같았다.
# Return every 2nd item between position 2 to 7
L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
print(L[2:7:2])
# Prints ['c', 'e', 'g']
예제 코드를 해석해 봤을 때, L 리스트에 있는 요소 중에서 2번 인덱스 부터 7번 미만 인덱스 까지 2의 간격으로 요소를 출력하라고 해석해볼 수 있다.
그림으로 표현하면 다음과 같다
'Language > Python' 카테고리의 다른 글
[Python] 2차원 배열을 선언할 때 주의할 점 (0) | 2022.08.10 |
---|