코딩/Python

[Python/파이썬] 문자열 메서드 split 함수 정리

작은코딩 2023. 10. 6. 15:20

🍏 공식문서

https://docs.python.org/ko/3.8/library/stdtypes.html#str.split

 

내장형 — Python 3.8.17 문서

다음 섹션에서는 인터프리터에 내장된 표준형에 관해 설명합니다. 기본 내장 유형은 숫자, 시퀀스, 매핑, 클래스, 인스턴스 및 예외입니다. 일부 컬렉션 클래스는 가변입니다. 제자리에서 멤버

docs.python.org

 

🍏 split 함수란?

문자열 메서드인 split 함수는 문자열을 분할하여 리스트를 리턴하는 함수이다.

str.split(sep=None, maxsplit=-1)

 

🥦 split 함수의 파라미터

split 함수는 sep, maxsplit 두 개의 파라미터를 가지고 있는데 각각 None, -1을 기본값으로 가지고 있다.

 

🥕 sep

sep에 str(문자) 값이 주어지면, 연속된 구분자는 묶이지 않고 빈 문자열을 구분하는 것으로 간주한다.
예를 들어, '1,,2'.split(',') 는 ['1', '', '2']를 리턴하는데

시작점과 첫 ',' 사이 = '1'
첫 ','와 두 번째 ',' 사이 = ''
두 번째 ','와 마지막 사이 = '2'

결과는 ['1', '', '2']이 된다.

<코드>

print('1,,2'.split(','))

<결과>


sep 인자는 여러 문자로 구성될 수 있다
예를 들어, '1<>2<>3'.split('<>') 는 ['1', '2', '3']를 리턴한다.

<코드>

print('1<>2<>3'.split('<>'))

<결과>


지정된 구분자로 빈 문자열을 나누면 ['']를 리턴한다.

<코드>

print(''.split('<>'))

<결과>


sep이 지정되지 않거나 None이면, 다른 분할 알고리즘이 적용된다.
연속된 공백 문자는 단일한 구분자로 간주하고, 문자열이 선행이나 후행 공백을 포함해도 결과는 시작과 끝에 빈 문자열을 포함하지 않는다.
결과적으로 빈 문자열이나 공백만으로 구성된 문자열을 None 구분자로 나누면 []를 돌려줍니다.

<코드>

print('1 2 3'.split())
print('   1   2   3   '.split())
print(''.split())
print('      '.split())

<결과>

 

🥕maxsplit

maxsplit에 int(숫자) 값이 주어지면 해당 수 만큼 분할을 수행하고 없거나 -1이면 분할 수에 제한이 없다.
maxsplit이 주어졌을 때 리턴되는 리스트는 최대 maxsplit + 1개의 요소를 가진다. ex) maxsplit이 3인 경우 3등분이 아닌 3번 분할하는 것으로 결과는 하나를 3번 분할해 4등분이 된다.

<코드>

print('1 2 3'.split(maxsplit=1))
print('1 2 3 4 5'.split(maxsplit=3))

<결과>

 


🥦 주의사항

간혹 리턴값에 '' 공백 문자가 포함되어 있다면 문자열에 구분자가 여러 개 중복한 경우가 있는지 확인해 보자