Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 부분 문자열(Substring) 추출 방법: 슬라이싱 완전 정복 가이드

Python 부분 문자열(substring)은 문자열에서 일부를 잘라낸 텍스트 조각을 의미합니다. Python에서는 슬라이싱(slicing) 문법 YourString[시작인덱스:종료인덱스:건너뛸문자수]를 사용해 손쉽게 부분 문자열을 추출할 수 있습니다.


개발을 하다 보면 하나의 데이터를 여러 조각으로 나눠야 하는 경우가 자주 생깁니다. 예를 들어 사용자의 전체 이름(full name)을 받았는데 성과 이름을 따로 저장해야 한다면, 이름을 두 부분으로 분리해야겠죠.

Python에서는 이런 작업을 어떻게 할 수 있을까요? 바로 문자열 슬라이싱이 답입니다. 슬라이싱 기법을 활용하면 문자열에서 특정 부분만 잘라내어 새로운 부분 문자열을 만들 수 있습니다. 이번 글에서는 Python에서 부분 문자열이 어떻게 동작하는지, 그리고 슬라이싱을 활용해 직접 부분 문자열을 만드는 방법까지 차근차근 살펴보겠습니다.

1. 문자열 인덱스 복습

슬라이싱 문법을 본격적으로 다루기 전에, 먼저 Python 문자열이 어떻게 인덱싱되는지 짚고 넘어가겠습니다.

Python에서 문자열은 숫자, 공백, 알파벳, 특수 기호 등 하나 이상의 문자가 나열된 시퀀스(sequence)입니다. 리스트 같은 다른 시퀀스 자료형과 마찬가지로, 문자열의 각 부분에 인덱스로 접근할 수 있습니다.

문자열의 모든 문자는 고유한 인덱스 값을 가지며, 이 값은 해당 문자가 문자열 내에서 차지하는 위치를 나타냅니다. 인덱스는 0부터 시작합니다. 예를 들어 문자열 "Python Substring!"은 아래와 같이 표현됩니다.

Python(공백)Substring!
012345678910111213141516

첫 번째 문자 'P'의 인덱스는 0이고, 마지막 문자 '!'의 인덱스는 16입니다.

각 문자에 고유한 인덱스가 부여되어 있기 때문에, 문자열에서 개별 문자를 읽거나 수정할 수 있습니다.

2. Python 부분 문자열 추출 기본 문법

그렇다면 문자열에서 앞의 세 글자만 가져오려면 어떻게 해야 할까요? 아니면 마지막 두 글자만 뽑아내고 싶다면요?

이럴 때 슬라이싱(slicing) 기법을 사용합니다. 슬라이싱은 문자열에서 원하는 범위의 문자들을 지정해 꺼내오는 방식으로, 문법은 다음과 같습니다.

string[start:end:step]

슬라이싱은 세 가지 요소로 구성됩니다.

  • start(시작): 슬라이스가 시작되는 인덱스 위치입니다. 기본값은 0입니다.
  • end(종료): 슬라이스가 끝나는 위치입니다. 주의할 점은 end 위치의 문자는 결과에 포함되지 않는다는 것입니다. 기본값은 문자열의 전체 길이입니다.
  • step(간격): N번째 문자마다 건너뛰도록 지정합니다. 기본값은 1이며, 이 경우 모든 문자가 포함됩니다.

3. 부분 문자열 추출 예제

예제 1: 처음 세 글자 가져오기

문자열에서 처음 세 글자를 추출해 보겠습니다. 슬라이싱 문법을 다음과 같이 사용합니다.

ourString = "Python Substring!"
print(ourString[0:3])

실행 결과:

Pyt

예제 2: 시작 인덱스 생략하기

시작 인덱스를 생략하면 문자열 맨 앞부터 지정한 위치까지의 모든 문자를 가져옵니다. 문자열 앞부분에 있는 데이터를 추출할 때 특히 유용합니다.

ourString = "Python Substring!"
print(ourString[:3])

실행 결과는 앞선 예제와 동일하게 "Pyt"입니다. start의 기본값이 0이기 때문에 시작 값을 명시하지 않아도 문자열 처음부터 문자를 가져오게 됩니다.

예제 3: 마지막 두 글자 가져오기

음수 인덱스를 활용하면 문자열 끝부분도 쉽게 추출할 수 있습니다.

value = "Python"
print(value[-2:])

실행 결과: on. 여기서는 시작 값으로 -2만 지정했습니다. 음수 인덱스 -2는 "뒤에서 두 번째 위치부터" 문자를 가져오라는 의미입니다.

4. 추가 예제

슬라이싱 활용법을 익히는 데 도움이 되는 몇 가지 예제를 더 준비했습니다.

예제 4: 마지막 한 글자 가져오기

value = "Python"
print(value[-1])

실행 결과: n. 종료 값 없이 시작 값(-1)만 지정했기 때문에 문자열의 마지막 문자 하나만 반환됩니다.

예제 5: 인덱스 2~3 범위의 문자 가져오기

value = "Python"
print(value[2:3])

실행 결과: t. 시작 값은 2, 종료 값은 3입니다. end 위치의 문자는 제외되므로 인덱스 2에 해당하는 문자 't'만 반환됩니다.

예제 6: 한 글자씩 건너뛰며 가져오기

value = "Python"
print(value[::2])

실행 결과: Pto. 콜론 두 개(::)를 사용해 start와 end는 기본값을 그대로 사용하고, step만 2로 지정했습니다. 따라서 슬라이스가 문자열에서 한 칸씩 건너뛰며 문자를 가져옵니다.

마무리

부분 문자열(substring)은 더 큰 문자열의 일부분입니다. Python에서는 슬라이싱 문법 string[start:end:step]을 사용해 원하는 범위의 문자를 추출할 수 있으며, 선택적인 세 번째 매개변수(step)를 활용하면 특정 간격의 문자만 골라낼 수도 있습니다.

슬라이싱은 데이터 파싱, 파일 확장자 추출, 날짜 형식 변환 등 실무에서 다양하게 활용되는 필수 기술입니다. 위 예제들을 직접 실행해 보면서 동작 방식을 몸에 익혀두시길 바랍니다.