Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 문자열의 숫자 제거하는 방법 (isdigit, 리스트 컴프리헨션, 정규표현식)

파이썬에서 문자열에 포함된 숫자를 제거하고 싶다면, 숫자가 아닌 문자들만 따로 모아두는 리스트를 만든 뒤 ''.join() 메서드를 사용해 다시 하나의 문자열로 합치는 방법을 활용할 수 있습니다.

예제 1: 반복문과 isdigit() 사용

먼저 가장 기본적인 방법입니다. 문자열을 한 글자씩 순회하면서 isdigit() 메서드로 숫자 여부를 판별하고, 숫자가 아닌 문자만 리스트에 추가한 후 마지막에 합칩니다.

my_str = 'qwerty123asdf32'
non_digits = []
for c in my_str:
    if not c.isdigit():
        non_digits.append(c)
result = ''.join(non_digits)
print(result)

출력 결과

qwertyasdf

실행해 보면 원래 문자열에서 숫자 '1', '2', '3', '3', '2'가 모두 제거되고 알파벳만 남은 것을 확인할 수 있습니다.

예제 2: 리스트 컴프리헨션으로 한 줄 처리

파이썬의 리스트 컴프리헨션(list comprehension)을 사용하면 위 과정을 단 한 줄로 간결하게 표현할 수 있습니다.

my_str = 'qwerty123asdf32'
result = ''.join([c for c in my_str if not c.isdigit()])
print(result)

출력 결과

qwertyasdf

리스트 컴프리헨션은 코드를 더 짧고 읽기 쉽게 만들어 주며, 파이썬다운(Pythonic) 스타일로 널리 권장되는 방식입니다.

추가 방법: 정규표현식(re 모듈) 활용

정규표현식을 선호한다면 re 모듈의 sub() 함수를 사용해 숫자를 빈 문자열로 치환하는 방법도 있습니다.

import re

my_str = 'qwerty123asdf32'
result = re.sub(r'\d', '', my_str)
print(result)

출력 결과

qwertyasdf

세 가지 방법 모두 동일한 결과를 출력하지만, 간단한 작업에는 리스트 컴프리헨션이, 복잡한 패턴 매칭이 필요한 경우에는 정규표현식이 유용합니다. 상황에 맞는 방법을 선택해 사용하시면 됩니다.