파이썬 문자열 공백 없애기

반응형
    반응형

    파이썬 문자열 공백 없애는 방법입니다. 공백 없애는 방법에는 3가지가 있습니다.

    1. 파이썬 replace 함수 이용해서 공백 제거
    2. 파이썬 strip함수 이용 해서 공백 제거 (rstrip, lstrip)
    3. 정규표현식의 sub함수 이용해 공백 제거(re.sub)

     

    1. replace 함수 이용해서 공백 제거

    replace 함수는 문자를 바꿔주는 함수인데 파이썬에서는 공백도 문자로 취급하기 때문에 replace함수를 적용할 수 있습니다.
    쓰는 방식은
    문자열.replace(없앨 문자,바꿀 문자) 입니다.
    공백은 " "으로 되어 있습니다. 이를 ""으로 바꾸면 됩니다. replace는 기존 데이터에 반영이 안되므로 새로 정의를 해주어야 합니다.

    str = ' A B C D '
    new_str = str.replace(" ", "")
    print(new_str)


    모든 공백이 사라지게 됩니다.

    2. 파이썬 공백 제거 - 문자열 strip 함수 (lstrip, rstrip)

    파이썬 문자열의 strip 메서드를 이용해 공백을 없앨 수 있는데 바깥쪽 공백만 가능하고 문자 사이의 공백은 제거하지 못합니다.

    • 문자열.strip() : 양쪽 공백을 지웁니다.
    • 문자열.lstrip() : 왼쪽 바깥 공백을 지웁니다.
    • 문자열.rstrip() : 오른쪽 바깥 공백을 지웁니다.

    구분을 위해 |를 넣겠습니다.

    str = ' A B C D '
    print(f'|{str.strip()}|')
    print(f'|{str.lstrip()}|')
    print(f'|{str.rstrip()}|')

     

    3. re.sub를 이용해 공백 제거

    정규표현식을 이용해서도 공백을 제거할 수 있습니다. 장점은 양쪽 사이드나 왼쪽,오른쪽, 문자사이의 공백도 다 가능합니다. 단점은 표현식을 알고 있어야 합니다.
    다음과 같이 합니다.

    import re
    
    str_left = re.sub(r"^\s+", "", str)
    str_right = re.sub(r"\s+$", "", str) 
    str_both_side = re.sub(r"^\s+|\s+$", "", str)
    str_all = re.sub(r"\s", "", str)
    
    print(f"좌측 공백 제거 : |{str_left}|")
    print(f"우측 공백 제거 : |{str_right}|")
    print(f"양측 공백 제거 : |{str_both_side}|")
    print(f"전체 공백 제거 : |{str_all}|")

    정규표현식에 \s 가 공백을 의미합니다. 공백에 대한 표현식을 사용했고 sub함수를 통해 공백제거를 실행했습니다.

    정규표현식에 대한 기본 내용은 다음 포스팅에서 확인하시기 바랍니다.

     

    정규표현식 (re)

    정규표현식에 대해 설명하겠습니다. 정규표현식은 특정한 패턴과 일치하는 문자열을 검색하거나 치환하거나 제거하는 기능을 가지고 있습니다. 이메일 형식 판별이나 전화번호 판별, 자신이

    seong6496.tistory.com

     

     

    관련 포스팅

    [Python] 문자열(string) 다루기

    정규표현식 (re)

    [Pandas] 특수문자 제거하기

    [Pandas] replace로 값 변경하기

    댓글

    Designed by JB FACTORY

    ....