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', ''))
문자열은 변경할 수 없는 속성을 가지기 때문에 기존 문자열은 수정되지 않을 것임을 기억하는 게 중요합니다. replace()
메소드는 새로운 문자열을 반환할 것입니다.
다음 예제에서는 제 이름에서 문자 s
를 삭제하길 원하는 횟수를 지정하기 위해 optional_max
매개변수를 사용하고 싶습니다.
developer.replace('s', '', 2)
해당 코드 라인은 문자열 Jessica Wilkins
에서 문자 s
를 두 번만 삭제하라고 말합니다.
결과값을 출력한다면 아래와 같이 보일 것입니다:
print(developer.replace('s', '', 2))
파이썬 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}))
다음 예제에서는 문자 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'}))
결론
파이썬에서는 문자열(string)에서 제거하고 싶은 어떤 문자(characters)를 특정하고 새로 수정된 문자열 결과를 반환하기 위해 replace()
와 translate()
메소드를 사용할 수 있습니다.
문자열은 변경할 수 없는 속성을 가지기 때문에 기존 문자열은 수정되지 않을 것임을 기억하는 게 중요합니다.
replace()
메소드의 기본 문법(syntax)는 이와 같습니다.
str.replace(old_str, new_str[, optional_max])
replace()
메소드의 반환 값은 기존 문자열을 복사하여 교체할 문자열을 새로운 문자열로 바꾼 것입니다.
문자열에서 문자를 제거하는 또다른 방법은 translate()
메소드를 사용하는 것입니다. 이 메소드는 각각의 문자에서 교체할 문자열을 번역 테이블(translation table)에 연결(map)하여 새로운 문자열로 번역한 것을 반환한 것입니다.
파이썬 translate()
메소드의 기본 문법(syntax)는 이와 같습니다.
str.translate(table)
이 글을 재미있게 읽었길 바라고 당신의 파이썬 항해에 행운을 빌겠습니다.