답변:
선행 및 끝 공백을 제거하려면 str.strip()
다음을 사용하십시오 .
sentence = ' hello apple'
sentence.strip()
>>> 'hello apple'
모든 공백 문자를 제거하려면 str.replace()
다음을 사용하십시오 .
(NB는 "일반"ASCII 공백 문자 만 제거하고 다른 공백 은 제거 ' ' U+0020
하지 않습니다 )
sentence = ' hello apple'
sentence.replace(" ", "")
>>> 'helloapple'
중복 된 공백을 제거하려면 str.split()
다음을 사용하십시오 .
sentence = ' hello apple'
" ".join(sentence.split())
>>> 'hello apple'
sentence.join(str_list)
할 때 파이썬에게 str_list의 항목을 sentence
구분 기호 로 결합하도록 요청 합니다.
"".join(sentence.split())
실제로 정식 솔루션이며 단순히 공백이 아닌 모든 공백을 효율적으로 제거 합니다. Mark Byers의 ' 대답 ' 은이 덜 적절한 대답 대신에 받아 들여졌을 것입니다.
공백 만 제거하려면 다음을 사용하십시오 str.replace
.
sentence = sentence.replace(' ', '')
모든 공백 문자 (공백, 탭, 줄 바꿈 등) 를 제거하려면 split
다음 을 사용할 수 있습니다 join
.
sentence = ''.join(sentence.split())
또는 정규식 :
import re
pattern = re.compile(r'\s+')
sentence = re.sub(pattern, '', sentence)
시작과 끝에서 공백 만 제거하려면 다음을 사용할 수 있습니다 strip
.
sentence = sentence.strip()
lstrip
문자열의 시작 부분에서만 공백을 제거하고 문자열 rstrip
의 끝에서 공백을 제거 하는 데 사용할 수도 있습니다 .
yourstr.translate(str.maketrans('', '', ' \n\t\r'))
대안은 정규식을 사용 하고이 이상한 공백 문자 도 일치 시키는 것 입니다. 여기 몇 가지 예가 있어요.
단어 사이에서도 문자열의 모든 공백을 제거하십시오.
import re
sentence = re.sub(r"\s+", "", sentence, flags=re.UNICODE)
문자열의 시작에서 공백을 제거하십시오.
import re
sentence = re.sub(r"^\s+", "", sentence, flags=re.UNICODE)
문자열의 끝에서 공백을 제거하십시오.
import re
sentence = re.sub(r"\s+$", "", sentence, flags=re.UNICODE)
문자열의 시작과 끝에서 공백을 제거하십시오.
import re
sentence = re.sub("^\s+|\s+$", "", sentence, flags=re.UNICODE)
중복 공간 만 제거하십시오.
import re
sentence = " ".join(re.split("\s+", sentence, flags=re.UNICODE))
(모든 예제는 Python 2와 Python 3 모두에서 작동합니다)
공백은 공백, 탭 및 CRLF를 포함 합니다. 우리가 사용할 수 있는 우아하고 1 줄짜리 문자열 함수는str.translate
다음과 같습니다.
파이썬 3
' hello apple'..translate(str.maketrans('', '', ' \n\t\r'))
또는 철저히 원한다면 :
import string
' hello apple'..translate(str.maketrans('', '', string.whitespace))
파이썬 2
' hello apple'.translate(None, ' \n\t\r')
또는 철저히 원한다면 :
import string
' hello apple'.translate(None, string.whitespace)
\xc2\xa0
ans.translate( None, string.whitespace )
나만을 builtins.TypeError: translate() takes exactly one argument (2 given)
위해 생산합니다 . Docs는 인수가 변환 테이블이라고 말합니다. string.maketrans ()를 참조하십시오. 그러나 아래 Amnon Harel의 의견을 참조하십시오.
' hello apple'.translate(str.maketrans('', '', string.whitespace))
참고 :이 작업을 여러 번 수행하려는 경우 트랜스 테이블을 저장하는 변수를 만드는 것이 좋습니다.
시작과 끝에서 공백을 제거하려면을 사용하십시오 strip
.
>> " foo bar ".strip()
"foo bar"
import re
sentence = ' hello apple'
re.sub(' ','',sentence) #helloworld (remove all spaces)
re.sub(' ',' ',sentence) #hello world (remove double spaces)
또한 스트립 에는 몇 가지 변형이 있습니다.
문자열의 시작과 끝에서 공백을 제거하십시오.
sentence= sentence.strip()
문자열의 시작에서 공백을 제거하십시오.
sentence = sentence.lstrip()
문자열의 끝에서 공백을 제거하십시오.
sentence= sentence.rstrip()
세 문자열 기능 strip
lstrip
및 rstrip
기본 모든 공백 인 상태, 스트립에 문자열의 매개 변수를 취할 수 있습니다. 이는 특정 작업을 수행 할 때 유용 할 수 있습니다. 예를 들어 공백 만 제거하고 줄 바꿈은 제거 할 수 없습니다.
" 1. Step 1\n".strip(" ")
또는 문자열 목록에서 읽을 때 추가 쉼표를 제거 할 수 있습니다.
"1,2,3,".strip(",")
문자열, 양쪽 끝 및 단어 사이의 모든 공백을 제거하십시오.
>>> import re
>>> re.sub("\s+", # one or more repetition of whitespace
'', # replace with empty string (->remove)
''' hello
... apple
... ''')
'helloapple'
파이썬 문서 :
re
이전에 제안 된 것을 알고 있지만 질문 제목에 대한 실제 답변이 다른 모든 옵션 중에서 약간 숨겨져 있음을 발견했습니다.
hello apple
?helloapple
?