본문 바로가기
SSAFY

[수업복습] 슬라이싱 팬다.

by 주니코니 2024. 7. 15.

슬라이싱 역순 읽기 너무 헷갈린다ㅏㅏㅏㅏㅏㅏㅏㅏㅏ

 

그래서 이 기회에 확실하게 패볼라고 정리해봄

틀린 내용 있음 알려주세요

공부를 핑계로 사실 짤 쓰려고 블로그 들어옴

 

슬라이싱의 핵심은 시작점이 어디냐인 거 같다

시작점이 어딘지만 알면 순방향이던 역순이던 팰 수 이써요

 

그럼 예제를 봐볼까요

 

아래 답 모게요

my_str = 'abcde'
print(my_str[4:2:-1])

 

답 : 

더보기

ed 임. 충격적.

ba일줄 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

왜게요

더보기
시작점 my_str[4], 끝점 my_str[2+1]이 됨
 
끝점 my_str[2+1]인 이유는
슬라이싱 기본 구조가 [시작점 값 포함:끝점 직전값까지 포함: 증가(+)/감소(-) 정도]
역순일 경우데도 [:끝점 직전까지]니까 my_str[3]이 됨(참고로 오른쪽에서 부터 인덱스 세면 3, 왼쪽에서 세면 -2

💯슬라이싱 역순 읽는 내 tip ㅋ

 

1) 처음부터 역순으로 읽으려하지 말고 우선 슬라이싱이 역순인지 아닌지(-표시가 있는가)를 본다

2) [b:a:-1]라면 b부터 a까지 파악하고나서, 1씩 역순으로 읽기 시작

(단 시작점이 끝점보다 큰 수여야함)

 

⭐참고로 [b:a:-1] 로 쓴 이유 :

앞 숫자(범위)가 두번째 숫자(범위)보다 더 크다(b>a)

안그럼 결과값이 내 예상을 벗어남

ex.  아래 답 모게요

my_str = 'abcde'
 
print(my_str[0:3:-1])
 

 

더보기

edcba인줄 알았으나 
그것은..그것은...

틀림

답은 빈칸이 출력됨

 

왜냐하면

더보기

my_str[0:2:-1]이면

my_str[0]인 'a'가 시작점이 됨

시작 인덱스를 더 큰 값으로 설정하지 않았기에 역방향으로 진행이 안됨

 

그럼 아래 답은 어떻게 될까

my_str = 'abcde'

print(my_str[0::-1])

 

답은 

 

더보기

a임

왜냐하면 [0] 인덱스에서부터 역순으로 끝까지니까 a 하나밖에 업슴

 

휴.

 

다음엔 몰 패볼까