본문 바로가기
파이썬 팁

파이썬 문자열에서 공백 or 문자 제거

by 다빈치코딩 2024. 2. 4.

목차

    반응형

    파이썬 문자열을 다루다보면 문자열에서 특정 문자나 공백을 제거하고 싶은 경우가 있습니다. 이 때 사용하는 함수가 strip 함수 입니다. 간단하게 사용 방법을 알아보겠습니다.

    strip 함수

    say = '    hello!!   '
    print(say)
    print(say.strip())
    

    say 라는 변수에 앞, 뒤 공백이 존재하는 문자가 있습니다. 이 문자를 출력하면 다음과 같이 출력됩니다.

        hello!!   
    hello!!
    

    앞과 뒤에 있는 공백이 모두 사라졌습니다. 한가지 예를 더 보여드리겠습니다. 이것은 공식 문서에 있는 예제 입니다.

    url = 'www.example.com'
    print(url.strip('cmowz.'))
    
    # example
    

    strip 함수 안에 지우고 싶은 문자를 넣었고 기존 문자에 있던 c, m, o, w, z, . 문자의 앞, 뒤에 있는 항목들을 모두 지워주었습니다. 중요한 점은 example 에는 m이 있는데 이것은 지우지 않았다는 점입니다. 즉 strip 함수를 사용할 때 주의점이 있습니다.

    1. strip() 함수에 아무것도 넣지 않으면 문자열의 앞, 뒤에 있는 공백을 지워줍니다.
    2. strip() 함수에 문자열을 넣으면 변수의 앞과 뒤에서 해당 문자를 지워줍니다.
    3. 지워주다가 일치하지 않는 항목이 있으면 더 이상 삭제를 진행하지 않고 다음으로 넘어갑니다.
    4. 원래 변수는 변하지 않습니다.

    1, 2 번은 직관적으로 알 수 있지만 3번은 조금 이해하기 힘들 수 있습니다. 아까 example에서 m은 삭제되지 않고 출력된 이유가 바로 이것 입니다. ‘www.’까지는 strip 함수안에 있는 항목이기 때문에 삭제가 된 것입니다. e부터는 존재하지 않는 항목이기 때문에 더이상 비교하지 않고 삭제도 하지 않습니다. 다음으로 뒤에서부터 ‘.com’은 strip 항수 안에 있기 때문에 삭제합니다. 그리고 e를 만나 더이상 삭제하지 않습니다.

    4번은 기존 변수를 변경하지 않는다고 하였습니다. 위 코드에서 url만 다시 출력해 보겠습니다.

    print(url) # www.example.com
    

    기존의 url은 변하지 않았음을 알 수 있습니다. 즉 strip 함수는 변수의 앞과 뒤에 있는 문자를 삭제해서 그 결과를 리턴하는 함수이지 기존 변수를 변경하지는 않습니다.

    lstrip, rstrip

    strip 함수는 앞과 뒤를 삭제하였는데 앞쪽만 지우거나, 뒤쪽만 지우고 싶은 경우가 있습니다. 이런 경우에는 strip의 방향을 정해주는 lstrip, rstrip을 사용하면 됩니다. lstrip은 left strip의 약자로 왼쪽만 strip을 한다는 뜻입니다. 글의 왼쪽이기 때문에 앞쪽만 삭제하고 싶을 때 사용합니다.

    반대로 rstrip은 right 방향만 strip을 한다는 뜻입니다. 즉 오른쪽만 strip을 하기 때문에 뒤쪽만 삭제합니다.

    url = 'www.example.com'
    print(url.lstrip('cmowz.'))
    print(url.rstrip('cmowz.'))
    # example.com
    # www.example
    

    lstrip을 사용하였을 때 “www.” 이 삭제되어 “example.com” 이 출력되었습니다. rstrip을 사용하였을 때는 “.com”이 삭제되어 “www.example”이 출력됨을 알 수 있습니다.

    반응형

    '파이썬 팁' 카테고리의 다른 글

    for else / while else 사용 방법  (0) 2023.10.16
    파이썬 lambda 함수 활용 팁  (2) 2023.09.14
    Gradio 기초(Colab에서 사용하기)  (0) 2023.09.11
    파이썬 입력 빠르게 받기  (0) 2023.09.08