[Python] 파이썬 문자열 자르기(Slicing, Indexing)

대부분의 데이터는 텍스트 형태로 이루어지는 경우가 많고, 텍스트로 이루어진 정보를 추출하거나 필요한 정보만을 가져오는 등 데이터를 가공하는 과정에서 문자열 자르기를 정말 많이 합니다. 파이썬에서는 문자열을 자르는 방법들이 여러가지가 있습니다. 이번 포스팅에서는 파이썬에서 문자열을 자를 수 있는 방법에 대해 알아보도록 하겠습니다.

 

파이썬 문자열 인덱스(index)

str = "Hello, World!"

# 양수 인덱스 사용
print(str[0])    # 결과 : "H"
print(str[4])    # 결과 : "o"
print(str[7])    # 결과 : "W"
print(str[12])   # 결과 : "!"

# 음수 인덱스 사용 (역순으로 문자열 탐색)
print(str[-1])   # 결과 : "!"
print(str[-2])   # 결과 : "d"
print(str[-5])   # 결과 : "r"
print(str[-12])  # 결과 : "H"

문자열 자르기를 하기 전에 문자열 인덱스에 대해 알고 가야 합니다. 문자열 인덱스는 문자열의 각 문자에 할당된 순서 번호를 나타내는 정수 값입니다. 문자열은 0부터 시작하는 인덱스를 가지며, 왼쪽에서 오른쪽으로 순서대로 번호가 매겨집니다. 음수 인덱스도 사용할 수 있는데, 이 경우 문자열의 끝에서부터 역순으로 인덱스가 매겨집니다. 인덱스를 사용하여 문자열의 특정 위치의 문자를 가져올 수 있고 문자열 자르기도 이 인덱스를 기준으로 자르게 됩니다.

 

※ 다만, 문자열은 불변(immutable) 타입이므로 특정 인덱스의 문자를 직접 수정하는 것은 불가능합니다. 수정이 필요한 경우 새로운 문자열을 생성하거나, 문자열을 리스트 등으로 변환하여 수정한 뒤 다시 문자열로 변환해야 합니다

 

 

 파이썬 문자열 자르기 

문자열 슬라이싱 기본 사용법

string[start:end]
  • string : 대상 문자열
  • start : 문자열 시작 index
  • end : 문자열 끝 index

 

문자열 앞에서부터 원하는 인덱스까지 자르기

str = "Hello, World!"
substr = str[0:5]  
substr = str[:5]  # 0은 생략가능
print(substr)  # 결과 : "Hello"

결과 : Hellow

 

문자열을 처음부터 원하는 index까지 자르려면 str[0:len]의 형태로 문자열을 자를 수 있습니다. 위의 예제의 경우 첫번째 문자의 인덱스는 0이고 5까지 자르게 되면 Hello라는 결과가 출력됩니다. 여기서 0은 생략이 가능하여 str[:index]의 형태로 줄여서 쓸 수도 있습니다.

 

 

문자열을 뒤에서부터 원하는 인덱스까지 자르기

str = "Hello, World!"
substr = str[-6:]  
print(substr)  # 결과 : "World!"

결과 : World!

 

문자열을 뒤에서부터 원하는 index만큼 자르려면 str[:-index]의 형태로 사용하면 됩니다. 위의 예제에서는 끝에서부터 -6글자까지 잘라서 "World!"라는 문자열을 출력하였습니다.

 

 

문자열을 원하는 index부터 원하는 index까지 자르기

str = "Hello, World!"
print(str[7:len(str)]) # 결과 : World!  
print(str[-13:-8]) # 결과 : Hello  

결과 ↓

World!

Hello

 

문자을 원하는 index ~ index까지 자르는 예제입니다. 위와 같이 양수, 음수 index로 원하는 문자열을 추출할 수 있습니다. 참고로 문자열 len 함수를 사용하면 문자열 끝 index를 쉽게 구할 수 있습니다. 

 

 

※ 구분자로 자르는 방법이 궁금하시다면 아래 글을 참고해 주세요.

https://coding-factory.tistory.com/965

 

[Python] 파이썬 문자열 쪼개기 - '구분자'로 자르기(split, splitline)

프로그래밍에서 문자열을 특정 구분자를 기준하여 나누는 것을 보통 "문자열 쪼개기"라고 합니다. 만약 우리가 파이썬에서 문자열을 구분자로 쪼개고 싶다면 내장함수 str.split() 메서드와 str.spli

coding-factory.tistory.com

 

댓글

Designed by JB FACTORY