관리 메뉴

솜씨좋은장씨

[Python] 문자열 split() 과 split(" ") 차이 알아보기! 본문

Programming/Python

[Python] 문자열 split() 과 split(" ") 차이 알아보기!

솜씨좋은장씨 2021. 5. 21. 01:33
728x90
반응형

최근에 일을 하면서 split( ) 과 split(" ") 의 결과가 다르다는 것을 어렴풋이 들은 기억이 있었습니다.

 

1152번: 단어의 개수

첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한

www.acmicpc.net

그러다 위의 문제를 풀다가! split(" ")을 사용하여 계속 실패하다가 split( )으로 바꾸어 푸니 성공하였습니다.

 

이 참에 두 함수의 차이가 무엇인지 알아보았습니다.

string = "word1 word2  word3    word4     "

예를 들어 위와 같이 word1 다음공백 1개, word2 다음 공백 2개, word3 다음 공백 3개, word4 다음 공백 4개

이렇게 있는 문자열이 있다고 할때

 

split( )과 split(" ")의 결과는 다음과 같습니다.

print(string.split())
> ['word1', 'word2', 'word3', 'word4']
print(string.split(" "))
> ['word1', 'word2', '', 'word3', '', '', 'word4', '', '', '', '']

자세하게 풀어 보면

split( )은 공백이 1개이건 2개이건 n개이건 상관없이 무조건 1개로 보고 처리

split(" ")은 공백 1개, 1개를 각각의 공백으로 따로따로 처리합니다.

 

추가적으로 split( )은 공백만 처리하는 것이 아니라 "\t" ( 탭 ), "\n" ( 엔터 ) 도 처리해줍니다.

 

앞으로 문자열을 다룰때 잘 고민해서 사용해야겠다는 생각이 들었습니다.

 

읽어주셔서 감사합니다.

Comments