반응형
파이썬에서 여러 공백을 단일 공백으로 대체
이 질문에는 이미 답변이 있습니다.
- 문자열에서 여러 공백을 제거하는 간단한 방법? 답변 21 개
이 문자열이 있습니다.
mystring = 'Here is some text I wrote '
더블, 트리플 (...) 공백을 하나의 공백으로 대체하여 어떻게 얻을 수 있습니까?
mystring = 'Here is some text I wrote'
간단한 가능성 (RE를 피하려는 경우)은
' '.join(mystring.split())
split 및 join은 명시 적으로 요구하는 작업을 수행합니다. 또한 말하지는 않지만 추가 공백을 제거하여 예제에서 볼 수 있습니다. ;-)
import re
re.sub('\s+', ' ', mystring).strip()
이것은 또한 모든 탭, 줄 바꿈 및 기타 "공백과 같은"문자를 대체합니다.
strip()
원격 선행과 공백을 후행합니다.
완전성을 위해 다음을 사용할 수도 있습니다.
mystring = mystring.strip() # the while loop will leave a trailing space,
# so the trailing whitespace must be dealt with
# before or after the while loop
while ' ' in mystring:
mystring = mystring.replace(' ', ' ')
상대적으로 적은 공간 ( re
이 상황 보다 빠름)이 있는 문자열에서 빠르게 작동 합니다.
어떤 시나리오에서든 Alex Martelli의 split / join 솔루션 은 최소한 빠르게 수행됩니다 (보통 훨씬 더 많이 수행).
귀하의 예제에서 timeit.Timer.repeat ()의 기본값을 사용하면 다음과 같은 시간이 발생합니다.
str.replace: [1.4317800167340238, 1.4174888149192384, 1.4163512401715934]
re.sub: [3.741931446594549, 3.8389395858970374, 3.973777672860706]
split/join: [0.6530919432498195, 0.6252146571700905, 0.6346594329726258]
편집하다:
그냥이 건너 온 이 게시물 이 방법의 속도를 다소 긴 비교를 제공합니다.
반응형
'Programing' 카테고리의 다른 글
Java 문자열에서 선행 및 후행 공백 제거 (0) | 2020.03.28 |
---|---|
현재 실행중인 스크립트를로드 한 스크립트 태그를 어떻게 참조합니까? (0) | 2020.03.28 |
fs.readFile에서 데이터 가져 오기 (0) | 2020.03.28 |
scp 또는 sftp는 단일 명령으로 여러 파일을 복사합니다 (0) | 2020.03.27 |
VS 2013이 왜 매우 느린가요? (0) | 2020.03.27 |