파이썬

[python] 문자열 나누기 : split() 함수와 구분자의 활용

도도o 2024. 9. 21. 17:35

 

문자열을 나눌 때 split() 함수를 주로 사용한다. 이 함수는 다양한 방법으로 문자열을 구분하는 데 유용한 도구이다.

 

1. split() 함수 사용하기

1) 기본 사용법

 

split()함수에 인자를 지정하지 않고 사용하면, 문자열의 공백을 기준으로 나뉜다.

string = 'I am a student'

print(string.split())
>>> ['I', 'am', 'a', 'student']

 

 

2) 구분자 지정하기

 

특정 구분자를 사용하여 문자열을 나누고 싶다면, 구분자를 인자로 전달하면 된다. 예를 들어, 쉼표(,)로 구분된 문자열을 나누고 싶다면 다음과 같이 사용할 수 있다.

string = 'apple,banana,cherry'

print(string.split(','))
>>> ['apple', 'banana', 'cherry']

 

 

 

 

2. 여러 개의 구분자로 문자열 나누기

1) split 여러 번 사용

 

split() 함수를 여러 번 호출하여 분리할 수 있다.

예를 들어, 먼저 쉼표로 나누고 그 다음에 공백으로 나누는 방법은 다음과 같다.

string = 'apple, banana orange, grape'
result = [item for sublist in string.split(',') for item in sublist.split()]
print(result)
>>> ['apple', 'banana', 'orange', 'grape']

 

 

 

2) 다른 문자로 대체 후 split 적용

 

구분자를 모두 특정 문자로 대체(replace)하고, 그 특정 문자를 기준으로 분리할 수 있다.

아래는 모음을 기준으로 단어를 나누는 예시이다. re 패키지를 활용하여 다른 문자('?')로 대체했고, '?'을 구분자로 문자열을 나눈다.

import re

string = 'extraordinary'
# 모음을 '?'로 대체
string_replaced = re.sub(r'[aeiou]', '?', string)
# '?'를 기준으로 split
result = string_replaced.split('?')

print(result)
>>> ['xtr', 'rd', 'n', 'ry']

 

 

 

3) 정규표현식 사용

 

정규표현식을 이용하면 여러 구분자를 동시에 처리할 수 있다. re 패키지의 'split' 함수를 사용하는 예시는 아래와 같다.

import re

string = 'apple, banana; orange grape'
# 공백, 쉼표, 세미콜론을 구분자로 설정
result = re.split(r'[;,\s]+', string)
print(result)
>>> ['apple', 'banana', 'orange', 'grape']

 

+는 정규 표현식에서 "1회 이상 반복"을 의미한다. 즉, [;,\s]+는 세미콜론, 쉼표, 또는 공백 문자 중 하나가 1회 이상 연속해서 나타날 경우를 매칭한다.

string = 'apple,  banana;   orange  grape'
result = re.split(r'[;,\s]+', string)
print(result)
>>> ['apple', 'banana', 'orange', 'grape']

 

** 정규표현식에서 \s 는 공백을 의미한다.