Python에서 ASCII가 아닌 문자를 공백으로 바꾸는 것은 쉬운 작업이 아닙니다. 비ASCII 문자를 제거하기 위한 많은 솔루션이 있지만 교체는 여전히 흔하지 않은 요구 사항입니다.
제공된 함수인 Remove_non_ascii_1은 모든 비ASCII 문자를 효과적으로 제거합니다. 반면에,remove_non_ascii_2는 ASCII가 아닌 문자를 공백으로 대체하지만 공백의 수는 문자의 코드 포인트 크기에 해당합니다.
이제 중심 질문을 해결해 보겠습니다.
ASCII가 아닌 모든 문자를 어떻게 단일 공백으로 바꿀 수 있습니까?
해결책 1:
<code class="python">def replace_with_space(text): return ''.join([i if ord(i) < 128 else ' ' for i in text])</code>
이 접근 방식은 ''.join()의 목록 이해. 128 미만의 ASCII 값을 갖는 문자는 변경되지 않고 그대로 유지되지만 ASCII가 아닌 문자는 공백으로 대체됩니다.
해결책 2:
<code class="python">import re def replace_with_space(text): return re.sub(r'[^\x00-\x7F]+', ' ', text)</code>
이 솔루션에서 문자는 정규식에서는 연속된 비ASCII 문자가 단일 공백으로 대체되도록 보장합니다. 이렇게 하면 Remove_non_ascii_2에서 공백이 여러 개 삽입되는 문제가 해결됩니다.
위 내용은 Python에서 ASCII가 아닌 문자를 단일 공백으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!