Original article: Python Remove Character from a String – How to Delete Characters from Strings

파이썬에서는 문자열(string)에서 제거하고 싶은 어떤 문자(characters)를 특정하고 새로 수정된 문자열 결과를 반환하기 위해 replace()translate() 메소드를 사용할 수 있습니다.

문자열은 변경할 수 없는 속성을 가지기 때문에 기존 문자열은 수정되지 않을 것임을 기억하는 게 중요합니다.

이 글에서는 코드 예제들을 사용하여 replace()translate() 메소드를 사용하는 법을 보여줄 것입니다.

파이썬 replace() 메소드 사용하는 법

replace() 메소드의 기본 문법(syntax)는 이와 같습니다.

str.replace(old_str, new_str[, optional_max])

old_str 매개변수(parameter)는 교체하고 싶은 부분문자열을 의미합니다.

new_str 매개변수는 새로 사용하고 싶은 부분문자열을 의미합니다.

optional_max 매개변수는 교체할 부분문자열을 새로운 부분문자열로 최대 몇 번이나 변경할지 횟수를 의미합니다.

replace()메소드의 반환 값은 기존 문자열을 복사하여 교체할 문자열을 새로운 문자열로 바꾼 것입니다.

파이썬 replace() 예제

몇가지 예제들을 살펴보겠습니다.

첫번째 예제에서는 제 이름이 지정된 developer라는 문자열을 가지고 있습니다.

developer = 'Jessica Wilkins'

저의 성을 지우고 싶다면 replace() 메소드를 이런 식으로 사용할 수 있습니다:

developer.replace('Wilkins', '')

이것은 컴퓨터에게 문자열 Wilkins를 가지고 빈칸으로 교체하라고 말합니다.

결과값을 출력한다면 아래와 같이 얻게 될 것입니다:

print(developer.replace('Wilkins', ''))

예제사진01

문자열은 변경할 수 없는 속성을 가지기 때문에 기존 문자열은 수정되지 않을 것임을 기억하는 게 중요합니다. replace() 메소드는 새로운 문자열을 반환할 것입니다.

다음 예제에서는 제 이름에서 문자 s를 삭제하길 원하는 횟수를 지정하기 위해 optional_max 매개변수를 사용하고 싶습니다.

developer.replace('s', '', 2)

해당 코드 라인은 문자열 Jessica Wilkins에서 문자 s를 두 번만 삭제하라고 말합니다.

결과값을 출력한다면 아래와 같이 보일 것입니다:

print(developer.replace('s', '', 2))

print(developer.replace('s', '', 2)) 코드가 실행 되어 Jessica Wilkins라는 문자열이 Jeica Wilkins가 된 결과 모습

파이썬 translate() 메소드 사용하는 방법

문자열에서 문자를 제거하는 또다른 방법은 translate() 메소드를 사용하는 것입니다. 이 메소드는 각각의 문자에서 교체할 문자열을 번역 테이블(translation table)에 연결(map)하여 새로운 문자열로 번역한 것을 반환한 것입니다.

파이썬 translate() 메소드의 기본 문법(syntax)는 이와 같습니다.

str.translate(table)

파이썬 translate() 예제

translate() 메소드를 더 잘 이해하기 위해 몇가지 예제들을 살펴보겠습니다.

이번 예제에서는 Jessica Wilkins에서 문자 i에 해당하는 모든 경우를 삭제하고 싶습니다.

우리는 먼저 문자 i의 유니코드 포인트 값을 얻기 위해 파이썬 내장 함수 ord()를 이용해야 합니다. ord() 함수는 숫자값을 반환할 것입니다.

ord('i')

테이블에서 우리는 None 값을 배정해 컴퓨터가 i를 공백으로 교체할 것을 알게 만들 필요가 있습니다.

{ord('i'): None}

이제 translate() 메소드 안에 우리 테이블을 사용합니다.

developer.translate({ord('i'): None})

결과값을 출력한다면 아래와 같이 보일 것입니다:

developer = 'Jessica Wilkins'

print(developer.translate({ord('i'): None}))

print(developer.translate({ord('i'): None})) 코드가 실행 되어 Jessica Wilkins라는 문자열이 Jessca Wlkns가 된 결과 모습

다음 예제에서는 문자 e, s, i가 제거된 새로운 문자열을 반환하고 싶습니다. 이를 위해 우리는 우리의 테이블 매개변수에서 순환기(iterator)를 사용할 수 있습니다.

{ord(letter): None for letter in 'esi'}

해당 코드 라인은 컴퓨터에게 e, s, i가 발생하는 모든 경우를 찾아서 None으로 교체하라고 말합니다.

결과값을 출력한다면 아래와 같이 보일 것입니다:

developer = 'Jessica Wilkins'

print(developer.translate({ord(letter): None for letter in 'esi'}))

print(developer.translate({ord(letter): None for letter in 'esi'}))가 실행되어 Jessica Wilkins가 Jca Wlkn가 된 결과 모습

결론

파이썬에서는 문자열(string)에서 제거하고 싶은 어떤 문자(characters)를 특정하고 새로 수정된 문자열 결과를 반환하기 위해 replace()translate() 메소드를 사용할 수 있습니다.

문자열은 변경할 수 없는 속성을 가지기 때문에 기존 문자열은 수정되지 않을 것임을 기억하는 게 중요합니다.

replace() 메소드의 기본 문법(syntax)는 이와 같습니다.

str.replace(old_str, new_str[, optional_max])

replace()메소드의 반환 값은 기존 문자열을 복사하여 교체할 문자열을 새로운 문자열로 바꾼 것입니다.

문자열에서 문자를 제거하는 또다른 방법은 translate() 메소드를 사용하는 것입니다. 이 메소드는 각각의 문자에서 교체할 문자열을 번역 테이블(translation table)에 연결(map)하여 새로운 문자열로 번역한 것을 반환한 것입니다.

파이썬 translate() 메소드의 기본 문법(syntax)는 이와 같습니다.

str.translate(table)

이 글을 재미있게 읽었길 바라고 당신의 파이썬 항해에 행운을 빌겠습니다.