안녕하세요 엘빈입니다.저번 포스팅에서는 문자열 함수 및 표현 방법에 대해서 알아보았습니다. 문자열은 여러개의 문자 데이터가 합쳐진 만큼 실제 개발 환경에서 활용하는 방법이 다양합니다. 이번 포스팅에서는 문자열에 관련하여 편리한 기능을 제공하는 인덱싱과 슬라이싱에 대해서 알아보겠습니다.
문자열 인덱싱(indexing)
인덱싱(indexing)이란 무언가를 가리킨다는 뜻으로 문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능입니다.
만약 문자열 a 내용이 "very good" 일 때 문자 하나하나의 위치를 어떻게 표현할까요?
문자
|
v
|
e
|
r
|
y
|
|
g
|
o
|
o
|
d
|
인덱싱
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
다음과 같이 숫자 0부터 시작해 1씩 더해집니다.
즉 v 위치를 나타내는 인덱싱 숫자는 0입니다.
만약 y의 위치를 문자열 a를 통해 표현하고 싶다면 a[3] 이라고 작성합니다.
파이썬은 모든 인덱싱 숫자를 0부터 센다는 점을 꼭 기억하세요!
다음과 같이 코드를 입력해봅시다.
1 str = "Life is very good, but it is too short"
2
3 print(str[2],str[6],str[-1]) # result : f s t
각 인덱스 위치에 있는 문자를 찾아 출력하는 것을 알 수 있습니다.
인덱스 값을 -1을 주면 제일 마지막 문자를 찾으라는 의미입니다.
문자열 슬라이싱(Slicing)
슬라이싱(Slicing)이란 잘라낸다는 의미를 가지고 있습니다.
익덱싱에서는 인덱스 값을 이용해 문자 한 개를 찾았는데요.
만약 "very good"이라는 문자열이 있다면 한 개의 문자가 아닌 "good" 같은 단어를 뽑아낼 순 없을까요?
이럴 경우 슬라이싱 기능을 사용합니다.
위의 표를 참조하면 인덱스 5부터 8까지가 "good"에 해당하는 범위임을 알 수 있습니다.
이럴 경우 인덱스 값 하나만이 아닌 범위 지정을 통해 원하는 단어를 뽑아냅니다.
"good"이라는 단어를 뽑아내고 싶다면 str[5:9]라고 작성을 합니다.
다음과 같이 코드를 작성해봅시다.
1 str = "Life is very good, but it is too short"
2
3 print(str[8:12]) # result : very
결과값이 정확히 "very"라는 단어를 뽑아낸 것을 알 수 있습니다.
한 개의 문자를 찾을때는 인덱싱을 여러 개의 문자 조합인 단어를 찾을때는 슬라이싱을 사용하면 됩니다.
# 문자열 슬라이싱 활용하기
슬라이싱에서 범위를 지정할 때 꼭 시작 번호와 끝 번호를 모두 작성할 필요는 없습니다.
예를 들어 "Life is Good"에서 is 이후의 모든 문자열을 찾고 싶을때는 어떻게 할까요?
끝번호를 생략한 채 str[5:] 라고 작성하시면 됩니다.
다음 여러가지 슬라이싱 예제 코드를 작성해봅시다.
1 str = "Life is very good"
2
3 print(str[5:]) # is very good
4 print(str[:8]) # Life is
5 print(str[5:8]) # is
시작번호와 끝번호를 생략하면 문자열의 처음 혹은 끝까지 찾습니다.
마무리
지금까지 인덱싱과 슬라이싱에 대해서 알아보았습니다.
문자열에서 자주 사용하는 기능이기에 숙지하시고 다음 단계로 넘어가시는 것을 추천합니다.
포스팅 읽어주셔서 감사합니다.
이전 포스팅