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

파이썬 리스트 컴프리헨션과 ord() 함수로 알파벳 외 모든 문자 제거하기

이 글에서는 파이썬 3.x(또는 그 이상 버전)에서 리스트 컴프리헨션(list comprehension)ord() 함수를 활용하여 문자열에서 알파벳 이외의 모든 문자를 제거하는 프로그램을 다룹니다.

알고리즘

1. 주어진 문자열을 순회하며 각 문자를 검사합니다.
2. 소문자 [a-z] 또는 대문자 [A-Z] 범위에 해당하는 문자만 선택합니다.
3. join() 함수를 사용하여 조건을 통과한 모든 문자를 하나로 합쳐 출력합니다.

예제 코드

def remchar(input):

    # 대문자와 소문자 여부 검사
    final = [ch for ch in input if
             (ord(ch) in range(ord('a'), ord('z') + 1, 1)) or
             (ord(ch) in range(ord('A'), ord('Z') + 1, 1))]

    return ''.join(final)

# 실행 부분
if __name__ == "__main__":
    input = "Tutorials@point786._/?"
    print(remchar(input))

실행 결과

Tutorialspoint

코드 설명

ord() 함수는 문자 하나를 인자로 받아 해당하는 ASCII 값을 반환합니다. 덕분에 각 문자가 알파벳 범위에 속하는지 빠르고 간단하게 비교할 수 있습니다.

동시에 리스트 컴프리헨션을 활용해 필요한 문자만 걸러낸 뒤, join() 함수로 하나의 문자열로 묶어 원하는 결과를 얻습니다. 위 예제에서는 숫자, 특수문자(@, ., _, /, ?)가 모두 제거되고 알파벳만 남는 것을 확인할 수 있습니다.

결론

이번 글에서는 파이썬의 리스트 컴프리헨션과 ord() 함수를 조합하여 문자열에서 알파벳 이외의 모든 문자를 효율적으로 제거하는 방법을 살펴보았습니다. 이 기법은 입력값 정제(data cleansing)나 유효성 검사 등 실무에서도 유용하게 활용할 수 있습니다.