대부분의 데이터는 텍스트 형태로 이루어지는 경우가 많고, 텍스트로 이루어진 정보를 추출하거나 필요한 정보만을 가져오는 등 데이터를 가공하는 과정에서 문자열 자르기를 정말 많이 합니다. 파이썬에서는 문자열을 자르는 방법들이 여러가지가 있습니다. 이번 포스팅에서는 파이썬에서 문자열을 자를 수 있는 방법에 대해 알아보도록 하겠습니다.
파이썬 문자열 인덱스(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
'Language > Python' 카테고리의 다른 글
[Python] 파이썬 문자열 치환(replace, translate) (0) | 2023.08.09 |
---|---|
[Python] 파이썬 문자열 쪼개기 - '구분자'로 자르기(split, splitline) (0) | 2023.08.08 |
[Python] 파이썬 문자열, 자료형 길이 구하기(len) (0) | 2023.08.06 |
[Python] 문자열이 특정 문자, 단어로 시작 or 끝나는지 확인하기(startswith, endwith) (0) | 2023.08.03 |