조금씩 꾸준히 완성을 향해

[Python] String method / 문자열 분리 split() 본문

Python/문법

[Python] String method / 문자열 분리 split()

all_sound 2022. 8. 23. 22:05

Split()

 

 : 문자열을 부분 문자열로 나눌 때 사용하는 메소드

    ※ 주의! 문자열을 리스트 형태로 반환 

 

  • 사용방법
str.split([sep])

 

 구분자(separator)를 괄호안에 넣어주면, 그 구분자를 기준으로 문자열을 분리해 리스트로 반환한다. 

 

 

    - split() 

      이렇게 구분자를 입력하지 않으면, 모든 공백과 개행문자(\n)를 없애고 분리된 문자열을 담은 리스트를 반환한다.

#공백제거

fruits = "banana peach apple mango"
print(fruits.split())
#['banana', 'peach', 'apple', 'mango']
#개행문자, 공백 제거

fruits = "banana \n\n peach \n apple mango"
print(fruits.split())
#['banana', 'peach', 'apple', 'mango']

 

 - seperator

 

 구분자로 구분된 문자열이 있을 때, split()의 인자로 구분자를 넣어주면, 그 구분자를 기준으로 단어를 분리할 수 있다.

#구분자 콤마(,)를 기준으로 문자열 분리

fruits = "banana, peach, apple, mango"
print(fruits.split(','))
#['banana', 'peach', 'apple', 'mango']

 

 - maxsplit 추가

 

 인자에 maxsplit을 추가하면 앞에서부터 원하는 횟수만큼만 문자열을 분리할 수 있다.

str.split([sep,] maxsplit=숫자)

문자열을 구분자 sep(생략가능)을 기준으로 maxsplit 만큼 분리해 리스트로 반환한다.

 

 

말은 복잡하지만 예시를 보면 이해가 쉽다.

fruits = "banana peach apple mango"
print(fruits.split(maxsplit=2))
#['banana', 'peach', 'apple mango']

앞에서부터 2개의 공백(sep)까지만 문자열을 나누어, 결과적으로 3개 항목이 담긴 리스트를 반환한다.

 

 

더욱 유용한 예제를 한 번 살펴보자.

tel = '+82-01-2345-6789' 
split_tel = tel.split("-", 1)

print(split_tel)  #['+82', '01-2345-6789']
print('국내번화번호: {}'.format(split_tel[1]))  #국내번화번호: 01-2345-6789

국가 번호를 뺀 국내 번호를 구하는 과정이다.

 

첫번째 나오는 구분자(-)를 기준으로 문자열을 나누면 위와 같이 두 가지 항목으로 나누어 진다. 

그 리스트 중 첫번째 인덱스를 선택해 주면 국내 번호를 추출해 낼 수 있다.