파이썬 문자열의 모든 공백을 어떻게 제거합니까? 예를 들어, 문자열 strip my spaces
을로 바꾸고 stripmyspaces
싶지만 strip()
다음 과 같이 달성 할 수는 없습니다 .
>>> 'strip my spaces'.strip()
'strip my spaces'
답변
sep 매개 변수없이 str.split의 동작 활용 :
>>> s = " \t foo \n bar "
>>> "".join(s.split())
'foobar'
모든 공백 대신 공백을 제거하려는 경우 :
>>> s.replace(" ", "")
'\tfoo\nbar'
조기 최적화
명확한 코드를 작성하는 것이 효율성이 주요 목표는 아니지만 초기 타이밍은 다음과 같습니다.
$ python -m timeit '"".join(" \t foo \n bar ".split())'
1000000 loops, best of 3: 1.38 usec per loop
$ python -m timeit -s 'import re' 're.sub(r"\s+", "", " \t foo \n bar ")'
100000 loops, best of 3: 15.6 usec per loop
정규식이 캐시되어 있으므로 예상보다 느리지 않습니다. 미리 컴파일하면 도움이 될 수 있지만 여러 번 호출하면 실제로 중요합니다 .
$ python -m timeit -s 'import re; e = re.compile(r"\s+")' 'e.sub("", " \t foo \n bar ")'
100000 loops, best of 3: 7.76 usec per loop
re.sub의 속도는 11.3 배 더 느리지 만 병목 현상은 다른 곳에서도 확실하게 기억하십시오. 대부분의 프로그램은이 3 가지 선택의 차이점을 인식하지 못합니다.
답변
>>> import re
>>> re.sub(r'\s+', '', 'strip my spaces')
'stripmyspaces'
또한 당신이 생각하지 않는 공백 문자를 처리합니다 (믿습니다. 많이 있습니다).
답변
또는
"strip my spaces".translate( None, string.whitespace )
그리고 여기에 Python3 버전이 있습니다 :
"strip my spaces".translate(str.maketrans('', '', string.whitespace))
답변
가장 간단한 방법은 replace를 사용하는 것입니다.
"foo bar\t".replace(" ", "").replace("\t", "")
또는 정규식을 사용하십시오.
import re
re.sub(r"\s", "", "foo bar\t")
답변
파이썬에서 시작 공간 제거
string1=" This is Test String to strip leading space"
print string1
print string1.lstrip()
파이썬에서 후행 또는 끝 공간 제거
string2="This is Test String to strip trailing space "
print string2
print string2.rstrip()
파이썬에서 문자열의 시작과 끝에서 공백을 제거하십시오.
string3=" This is Test String to strip leading and trailing space "
print string3
print string3.strip()
파이썬에서 모든 공백을 제거하십시오
string4=" This is Test String to test all the spaces "
print string4
print string4.replace(" ", "")
답변
로 정규식을 사용해보십시오 re.sub
. 모든 공백을 검색하고 빈 문자열로 바꿀 수 있습니다.
\s
패턴에서 공백 (탭, 줄 바꿈 등)뿐만 아니라 공백 문자와 일치합니다. 자세한 내용 은 설명서를 참조하십시오 .
답변
import re
re.sub(' ','','strip my spaces')