Closed bsm8734 closed 3 years ago
파이썬의 split에 관한 내용을 찾아보면, 다음과 같이 써져있습니다!
sep 이 지정되지 않거나 None 이면, 다른 분할 알고리즘이 적용됩니다: 연속된 공백 문자는 단일한 구분자로 간주하고, 문자열이 선행이나 후행 공백을 포함해도 결과는 시작과 끝에 빈 문자열을 포함하지 않습니다. 결과적으로, 빈 문자열이나 공백만으로 구성된 문자열을 None 구분자로 나누면 [] 를 돌려줍니다.
그래서 split()
을 하면 연속된 공백 문자를 하나로 취급해서 ['Hello', 'World']
로 분리합니다.
sep 이 주어지면, 연속된 구분자는 묶이지 않고 빈 문자열을 구분하는 것으로 간주합니다 (예를 들어, '1,,2'.split(',') 는 ['1', '', '2'] 를 돌려줍니다). sep 인자는 여러 문자로 구성될 수 있습니다 (예를 들어, '1<>2<>3'.split('<>') 는 ['1', '2', '3'] 를 돌려줍니다). 지정된 구분자로 빈 문자열을 나누면 [''] 를 돌려줍니다.
위에는 문서에 적혀있는 것인데 split(" ")
는 공백 문자 하나를 구분자로 취급하고 연속된 구분자는 묶이지 않고 빈문자열을 구분하는 걸로 간주하므로 빈문자열이 포함되게 됩니다!
+) 참고로 이걸 알고 나서 모스부호 과제를 했는데 split(" ")
이 되게 유용했습니다!
파이썬 표준 라이브러리에 따르면, split 함수의 첫번째 파라미터 값(sep)에 따라 서로 다른 분할 알고리즘이 적용된다고 합니다.
string.split(sep = None)
인 경우, 연속된 공백 문자는 단일한 구분자로 간주하고,sep
이 주어지는 경우, 연속된 구분자는 묶이지 않고, 빈 문자열을 구분하는 것으로 간주합니다.
"abc def".split(' ') # ['abc']
# 개인적인 생각이지만 아래와 같은 순서로 잘리지 않을까.. 추측해봅니다!
# 1 # "abc def"
# 2 # "abc", " def"
# 3 # "abc", "", "def"
코멘트 달린지 모르고 중복된 내용을 정리하고있었습니다!....
유익합니다!
🙌 질문자
샐리
@bsm8734❓ 질문 내용
📄 참고 자료