소프트웨어에 대한 모든 것

[파이썬] str.split() vs str.split(' ') 차이? 본문

파이썬

[파이썬] str.split() vs str.split(' ') 차이?

앤테바 2022. 3. 19. 12:57
반응형

파이썬 문자열 객체에 split() 함수를 지원합니다.

구분자를 지정해 주면 해당 구분자로 문자열을 구분해서 단어들의 리스트를 돌려줍니다.

 

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

 

저는 구분자(sep)를 지정하지 않으면 공백(' ')으로 구분자가 지정되는 줄 알았는데 그것이 아니였습니다.

정확히는 sep가 지정되지 않으면 연속된 공백 문자는 단일한 구분자로 간주하는 것입니다.

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

이것이 무슨 차이가 있는지 예시를 통해서 살펴 보겠습니다.

 

str.split() 사용 예시

split() 함수를 사용했기 때문에 연속된 공백 문자도 하나로 보기 때문에 4개로 단어가 분리 되었습니다.

# space 1, space 2, space 3
s = 'hello my  big   world'
words = s.split()

print(words)
print(len(words))

출력

['hello', 'my', 'big', 'world']
4

str.split(' ') 사용 예시

구분자를 명시적을 ' '로 지정했습니다

split()와 다르게 7개로 단어가 구분 되었습니다.

공백도 구분이 되었습니다.

# space 1, space 2, space 3
s = 'hello my  big   world'

# 구분자를 단일 스페이스로 지정
words = s.split(sep=' ')

print(words)
print(len(words))
출력
['hello', 'my', '', 'big', '', '', 'world']
7
 
 

 

반응형
Comments