# 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

+ Recent posts