본문 바로가기

라이브러리

[파이썬] split() 함수 사용법

split() 함수는 문자열을 특정 구분자를 기준으로 나누는 함수입니다. 이 함수는 문자열을 분할하여 새로운 리스트 객체를 반환합니다. 함수의 기본 구문은 다음과 같습니다.

1. 기본 예제

string.split(separator, maxsplit)


여기서, string은 분할하고자 하는 문자열이고, separator는 분할 기준이 되는 문자열(혹은 문자)입니다. maxsplit은 분할할 최대 횟수를 나타내는 정수이며, 생략 가능합니다.

separator는 기본적으로 공백 문자(스페이스, 탭, 개행 등)입니다. 따라서, 문자열에서 공백 문자를 기준으로 분할하고자 할 경우, split() 함수를 호출하면 됩니다.

다음은 split() 함수를 사용한 예시입니다.

text = "Hello, World!"
words = text.split()
print(words) # ['Hello,', 'World!']


split() 함수는 문자열을 분할한 결과를 리스트로 반환합니다. 이 리스트의 각 원소는 분할된 문자열 조각입니다. 분할할 문자열이 특정 구분자를 포함하고 있는 경우, split() 함수를 사용할 때 separator 매개변수에 해당 구분자를 전달합니다.

text = "apple,banana,grape"
fruits = text.split(",")
print(fruits) # ['apple', 'banana', 'grape']


위 예시에서는 ","를 구분자로 사용하여 문자열을 분할하였습니다. 결과적으로 리스트의 각 원소는 ","로 구분된 문자열의 조각입니다.

maxsplit 매개변수를 사용하면, 분할을 수행할 최대 횟수를 제한할 수 있습니다. 예를 들어, maxsplit이 1인 경우, 문자열을 한 번만 분할하며, 그 결과 리스트의 크기는 2가 됩니다.

text = "apple,banana,grape"
fruits = text.split(",", 1)
print(fruits) # ['apple', 'banana,grape']


위 예시에서는 ","를 구분자로 사용하며, maxsplit을 1로 설정하여 문자열을 한 번만 분할하였습니다. 결과적으로 리스트의 첫 번째 원소는 "," 이전의 문자열인 "apple"이며, 두 번째 원소는 "," 이후의 문자열인 "banana,grape"입니다.

2. 여러번 사용

구분자가 여러 개인 경우에는 split() 함수를 여러 번 호출하거나, 정규식(regular expression)을 사용하여 문자열을 분할해야 합니다.

예를 들어, 다음과 같은 문자열이 있다고 가정해 봅시다.

text = "apple|banana,grape.orange"


이 문자열을 "|"와 "," 두 개의 구분자를 사용하여 분할하고자 할 경우, split() 함수를 두 번 호출하여 문자열을 분할할 수 있습니다.

text = "apple|banana,grape.orange"
fruits = text.split("|")
fruits = [f.split(",") for f in fruits]
print(fruits) # [['apple', 'banana'], ['grape.orange']]


위 예시에서는 먼저 "|"를 구분자로 사용하여 문자열을 분할하고, 그 결과를 다시 ","를 구분자로 사용하여 분할합니다. 결과적으로, 리스트 fruits는 [['apple', 'banana'], ['grape.orange']]와 같이 구성됩니다.

정규식을 사용하여 문자열을 분할하는 방법도 있습니다. 이 방법은 re 모듈을 사용하여 구현할 수 있습니다. 예를 들어, 다음과 같이 구분자를 정규식으로 표현할 수 있습니다.

import re

text = "apple|banana,grape.orange"
fruits = re.split(r'[|,]', text)
print(fruits) # ['apple', 'banana', 'grape', 'orange']


위 예시에서는 re.split() 함수를 사용하여 정규식 r'[|,]'에 해당하는 구분자로 문자열을 분할하였습니다. 이 결과, 리스트 fruits는 ['apple', 'banana', 'grape', 'orange']와 같이 구성됩니다.