본문 바로가기
방구석코딩/파이썬 기초문법

[파이썬 기초] 문자열의 인덱싱과 슬라이싱

by 석세상 2022. 5. 2.
반응형

인덱싱과 슬라이싱은 크게보면 다 슬라이싱이라고 볼 수 있다. 슬라이싱은 어디서부터 어디까지 잘라낸다는 의미인데 인덱싱은 특정한 하나만 가리키는 범위이다. 두 개의 개념은 아래 예제를 보면서 알아보도록 하고 먼저 인덱싱과 슬라이싱을 사용하려면 번호의 체계를 알아야 한다.

 

 

인덱싱

예를 들어, 'Short'라는 문자열에서 r만 추출 하려고 한다고 해보자. 이렇게 하나의 특정 문자만 추출하는게 인덱싱이라고 생각하면 된다. 그럼 'r'이 몇번째에 있는지 알아야 추출을 하는데 파이썬에서 몇번째인지 번호를 매기는 체계는 다음과 같다. 왼쪽부터 순서를 세어보면 0부터 시작해서 4로 끝난다. 결국 글자수가 5개인 경우 최대 Index는 4가 되는 것이다.

 

[앞에서부터 세는 법]

S h o r t
0 1 2 3 4

 

그럼 'Short'에서 'r'을 추출하려면 어떻게 해야 할까? 다음과 같은 문법으로 사용할 수 있다. 

a = Short'

a[3]

 

'r'


왼쪽부터 순서를 세는 위와 같은 경우와 맨 뒤에서부터 수를 세어 오는 경우도 있다. 앞에서부터 세면 되지 왜 뒤에서부터 세는게 필요한지 의구심이 들수도 있지만 뒤에서부터 순서를 세는 경우는 생각보다 많이 사용된다. 예를 들자면 맨 뒤의 한 문자만 떼어오고 싶은데 변수마다 문자의 길이가 다르다면 앞에서부터 세는 경우는 가져오기 어렵지만 뒤에서부터 센다면 맨 뒤에서 첫번째만 가져오기 때문에 쉽게 해결할 수 있는 것이다. -5는 앞에서 세는 0과 같다.

 

[뒤에서부터 세는 법]

S h o r t
-5 -4 -3 -2 -1

 

슬라이싱

인덱싱은 대괄호 안에 'r'이 있는 순서를 적어주면 해당 문자열만 추출되지만 여러 문자를 한번에 추출하고 싶을 땐 어떻게 해야 할까? 이 때 필요한 것이 바로 슬라이싱이다. 위에서 인덱싱의 개념을 제대로 이해했다면 슬라이싱은 생각보다 어려운 부분이 없다. 인덱싱의 확장판이라 생각하면 된다. 인덱싱을 범위만 지정해주면 된다라고 생각하면 큰 무리가 없을 것이다. 인덱싱과 마찬가지로 대괄호 안에 추출하려는 번호를 입력하면 되는데, 인덱싱에서는 하나의 숫자만 넣었다면 슬라이싱은 범위를 지정해주어야 하기 때문에 두개의 숫자를 넣어주어야 한다.

 

(슬라이싱 예시) 위의 a = 'Short'에서 'ho' 만 추출하는 문법을 사용해 보자.

a[1 : 3]


'ho'

 보시다시피 대괄호 안에 콜론(:)을 기준으로 시작과 끝나는 번호를 적어주었다. 다만 슬라이싱의 경우 유의할 점이 하나 있다. 슬라이싱의 맨 마지막 번호는 그 자리에서 자르는 거라 앞자리까지만 출력이 된다. 그래서 1에서 3이전까지를 가져온다라고 보면 된다. 사용하다 보면 이 부분이 자주 헷갈리게 되는데 익숙하지 않은 사람이라면 항상 신경쓰고 코딩을 해야 한다. 

 

 

728x90
반응형

댓글