• 2020. 6. 11.

    by. 윈썸지니

    반응형

    출처 : Pixabay

    본 포스팅은 자주 사용되는 문자열 삽입하기 및 치환에 대해 다루어 봅니다.

     

    문자열 삽입

    Join() : 문자열 또는 리스트에 구분자를 삽입하여 하나의 문자열을 만들어 줍니다.

    >>> ",".join("1234")
    '1,2,3,4'
    >>> x = ['사과', '배', '망고’]
    ## 리스트가 아니고 문자열로 결과값을 반환합니다.
    >>> "-".join(x)
    '사과-배-망고'
    >>> x
    ['사과', '배', '망고']
    >>>

     

    문자열 바꾸기(치환)

     

    replace() : 문자열 내에 특정 문자는 문자열을 바꿀 문자로 변경합니다.

    replace( ‘바꿀문자열’, 새문자열’ )

    ## ‘-’ 대시를 ‘_’ 언더바로 바꿉니다.
    >>> "1-2-3-4-5".replace('-', '_' )
    '1_2_3_4_5'
    >>> "Hello world!".replace('Hello', 'Hi' )
    'Hi world!’
    ## 대소문자를 구분합니다.
    >>> "Hello world!".replace('hello', 'Hi')
    'Hello world!’
    ## 특정 문자를 없애고자 할 때는 새문자열에 ‘’ 빈값을 넣어 줍니다.
    >>> "1-2-3-4-5".replace('-', '')
    '12345'
    >>>

     

    문자 바꾸기

     

    replace 는 문자 또는 문자열을 바꿀 수 있었습니다. 그런데 한 가지의 경우만 되었습니다.

    문자를 문자로만 변경 가능하지만 한번에 매핑 테이블처럼 만들고 변경하는 방법이 있습니다.

     

    maketrans(‘바꿀문자’, 새문자) translate(테이블)을 사용합니다

    다음 예제로 설명합니다.

    >>> tbl = str.maketrans( 'abcde', '12345’ )
    >>> "adeek fgh".translate( tbl )
    '1455k fgh'
    >>>

    위의 maketrans 는 아래와 같이 변경 매핑 테이블을 반환합니다. tbl에 아래와 같이 정의 되고 각 해당하는 문자에 따라 한자한자 변경됩니다.

    여러 번 replace 를 사용하는 것 보다는 한번에 사용 가능하므로 편리함을 제공합니다.

     

    문자열 나누기

     

    문자열 나누기는 split() 로 지난 포스팅에 적었는데 partition을 빼 먹었네요.

    Split(‘기준문자열‘) 는 기준 문자 또는 문자열로 문자열로 여러 개 있어도 다 나누어 리스트 형태로 결과 값을 반환합니다.

    하지만 partition 은 딱 왼쪽, 기준문자열, 오른쪽 형태로 나누어서 튜플 자료형으로 결과 값을 반환합니다.

    그럼 오른쪽 기준으로 사용하고 싶을 때는 rpartition 을 사용합니다.

    >>> "aa=bb=cc==dd".partition('=')
    ('aa', '=', 'bb=cc==dd')
    >>> "aa=bb=cc==dd".rpartition('=')
    ('aa=bb=cc=', '=', 'dd')
    >>>

     

    문자열 앞뒤 공백 제거

     

    strip() : 문자열 양 끝의 공백을 제거 합니다.

    lstrip() : 문자열 왼쪽(앞쪽) 공백을 제거 합니다.

    rstrip() : 문자열 왼쪽(앞쪽) 공백을 제거 합니다.

     

    문자열의 양 끝의 공백을 제거 할 뿐 문장 중간의 공백은 제거 하지 않습니다.

    >>> x = " Hello World! "
    >>> x.strip()
    'Hello World!'
    >>> x.lstrip()
    'Hello World! '
    >>> x.rstrip()
    ' Hello World!'
    >>>

     

    문자열 0 채우기

     

    문자열을 왼쪽, 오른쪽, 중앙에 정렬하면서 주로 공백을 채웠습니다.

    Format() 을 공부 할 때 0을 채운 예제를 사용하기는 했습니다.

    Format으로도 할 수 있는데 더 직관적으로 주로 숫자 사용시 자릿수를 맞추기 위해 왼쪽에 0을 채우는데 이때 사용합니다.

    >>> "12".zfill(10)
    '0000000012'
    >>> "12".zfill(5)
    '00012'
    >>> "12".zfill(1)
    '12'
    >>> "{0:0>10}".format("12")
    '0000000012'
    >>> "{0:0>5}".format("12")
    '00012'

     

    메소드 체이닝

     

    TIP 으로 메소드 체이닝 이라는 것을 사용하여 코딩 라인 수가 늘어나는 것을 간단하게 만들 수도 있습니다.

    예를 통해 알아 봅니다. 메소드의 메소드를 같이 사용할 수 있습니다.

    ## 0을 채우고 대문자로 변경합니다.
    >>> "abc".zfill(10).upper()
    '0000000ABC’
    ## 소문자로 바꾸고 공백을 ‘==‘ 로 변경합니다.
    >>> "Hello World".lower().replace(' ', '==')
    'hello==world'
    >>>

     

    이상으로 문자열에서 사용하는 메소드에 대해 포스팅해 보았습니다.

    다음 포스팅에는 리스트, 튜플 등에서 자주 사용되는 조작 방법을 알아봅니다.

    반응형