프로그래밍 언어/파이썬

파이썬 7. 문자열 슬라이싱

닉네임못짓는사람 2020. 9. 18. 06:26
반응형

이번 글에선 문자열 슬라이싱(slicing)에 대해서 알아보도록 하겠습니다.

문자열 슬라이싱은 말 그대로 문자열을 잘라낸다는 의미인데요, 이 슬라이싱에 대해 알기 위해서는

먼저 인덱스(index), 인덱싱(indexing)이라는 것에 대해 알아야 하니 이를 먼저 알아봅시다.

문자열 인덱싱


먼저 아래와 같은 문자열이 있다고 생각해봅시다.

str = "Python is simple and funny"

파이썬에서는 이러한 문자열에 각 문자마다 순서대로 번호를 매기는데, 이 숫자는 가장 앞 글자부터

0부터 1씩 증가하고, 이 숫자를 인덱스(index)번호 라고 부릅니다.

 

예를 들어 위의 문자열에서 Python의 인덱스 번호는 P=0, y=1, t=2, h=3, o=4, n=5입니다.

주의하셔야 할 점은 첫 번째 글자의 인덱스가 1이 아니고 0이라는 점인데, 보통 프로그래밍 언어에서

인덱스 번호는 0번부터 시작하니 꼭 기억해두시길 바랍니다.

 

다시 돌아와서, 우리는 이런 인덱스 번호를 사용해서 문자열의 각 문자에 개별적으로 접근할 수 있습니다.

코드로 한 번 확인해보도록 합시다.

str = "Python is simple and funny"
print(str[0])
print(str[2])
print(str[4])
print(str[6])
print(str[8])

결과를 확인해보시면 각각 문자열의 1, 3, 5, 7, 9번째 문자인 것을 확인할 수 있습니다.

인덱스 번호에 1을 더하면 문자열의 몇 번째 문자인지 알 수 있습니다.

여기서 다시 파이썬의 특이한 점이 드러나는데, 파이썬은 인덱스 번호를 음수로 지정할 수 있습니다.

인덱스 번호를 음수로 지정하면, 문자열의 가장 뒤의 문자부터 읽어오며, 이때는 -1이 가장 뒤의 문자가 됩니다.

str = "Python is simple and funny"
print(str[-1])
print(str[-3])
print(str[-5])
print(str[-7])
print(str[-9])

결과를 확인해 보시면 뒤에서부터 1, 3, 5, 7, 9번째 문자인 것을 확인할 수 있을 것입니다.

그렇다면 이 지식을 토대로 이번엔 문자열 슬라이싱에 대해 알아보도록 합시다.

문자열 슬라이싱


슬라이싱은 위에서 말했듯이 문자열을 잘라내는 것입니다.

이때 문자열의 인덱스 번호를 통해서 문자열의 어느 부분을 잘라낼 것인지 지정할 수 있습니다.

str = "Python is simple and funny"
str2 = str[0] + str[1] + str[2] + str[3]
print(str2)

이렇게 한 글자 한 글자 때어내서 새로운 문자열을 만들 수도 있겠지만, 파이썬에서는 더 쉬운 방법을 제공하고 있습니다.

str = "Python is simple and funny"
str2 = str[0:4]
print(str2)

위와 같이 콜론(:)을 사용해서 문자열을 간단하게 슬라이싱 할 수 있는데,

이때 자르는 문자열은 앞의 숫자(0)부터 뒤의 숫자(4)의 직전(3)까지 잘라냅니다.

따라서 위의 0:4는 str의 0, 1, 2, 3인덱스 번호에 있는 문자들을 가져온다는 의미입니다.

 

코드를 통해 좀 더 사용법을 알아보도록 합시다.

str = "Python is simple and funny"
print(str[5:9])     #시작 번호가 0이 아니여도 된다.
print(str[:9])      #앞의 번호를 생략할시 가장 첫 글자부터 슬라이싱 한다.
print(str[3:])      #뒤의 번호를 생략할시 가장 뒤의 글자까지 슬라이싱 한다.
print(str[:])       #번호를 모두 생략할시 문자열 전체를 가져온다.
print(str[10:-3])   #음수를 번호로 지정할 수 있다.

이렇게 다양한 방법으로 자신이 원하는 만큼 문자열을 슬라이싱 할 수 있습니다.

여기서 주의하셔야 할 점은 뒤의 인덱스 번호는 무조건 앞의 인덱스 번호 이상이어야 한다는 점입니다.

이것은 음수도 동일하며, 번호가 음수라면 최대 인덱스 번호에서 음수만큼 빼신 뒤 계산해서 생각하시면 될 것입니다.

 

이상으로 이번 글은 마치도록 하겠습니다.

감사합니다.

반응형

'프로그래밍 언어 > 파이썬' 카테고리의 다른 글

파이썬 9. 문자열 함수  (0) 2020.09.18
파이썬 8. 문자열 포매팅  (0) 2020.09.18
파이썬 6. 문자열 연산  (0) 2020.09.18
파이썬 5. 문자열  (0) 2020.09.18
파이썬 4. 자료형  (0) 2020.09.18