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

파이썬(Python) – K보다 큰 문자 제거하기

문자열에서 특정 기준값 K보다 큰 문자, 즉 알파벳 순서상 뒤에 위치한 문자를 제거해야 하는 경우에는 간단한 반복문과 파이썬 내장 함수인 ord()(유니코드 표현을 반환)를 함께 사용하면 손쉽게 해결할 수 있습니다.

ord()는 문자를 유니코드 정수 값으로 변환해 주는 함수로, 영문 소문자 'a'의 유니코드 값은 97입니다. 따라서 ord(문자) - 97을 계산하면 해당 문자가 알파벳에서 몇 번째 위치(0부터 시작)에 있는지 알 수 있고, 이 값을 기준값 K와 비교해 원하는 문자만 남기는 방식입니다.

아래는 실제 동작 예시입니다.

예제 코드

my_list = ["python", "is", "easy", "to", "learn"]

print("The list is :")
print(my_list)

K = 9
print("The value of K is ")
print(K)

my_result = []

for element in my_list:
    result_string = ''
    for sub in element:
        if (ord(sub) - 97 <= K):
            result_string += sub
    my_result.append(result_string)

print("The resultant list is :")
print(my_result)

실행 결과

The list is :
['python', 'is', 'easy', 'to', 'learn']
The value of K is 
9
The resultant list is :
['h', 'i', 'ea', '', 'ea']

코드 설명

  • 문자열로 구성된 리스트 my_list를 정의하고 콘솔에 출력합니다.
  • 기준값 K를 9로 정의하고 출력합니다.
  • 결과를 저장할 빈 리스트 my_result를 생성합니다.
  • 바깥쪽 반복문으로 리스트의 각 문자열을 순회하고, 안쪽 반복문으로 개별 문자를 하나씩 검사합니다.
  • 각 문자마다 ord()로 얻은 유니코드 값에서 97(소문자 'a'의 값)을 뺀 결과가 K 이하인지 확인합니다. 즉, K가 9라면 'a'부터 'j'까지의 문자만 남습니다.
  • 조건을 만족하는 문자는 임시 문자열 result_string에 차례대로 이어 붙입니다.
  • 하나의 문자열 검사가 끝나면 완성된 문자열을 결과 리스트에 추가합니다.
  • 모든 처리가 끝나면 최종 결과를 콘솔에 출력합니다.

예제에서는 K가 9이므로 'python'에서는 'h', 'is'에서는 'i', 'easy'에서는 'ea', 'to'에서는 빈 문자열, 'learn'에서는 'ea'가 각각 추출됩니다. 이처럼 ord() 함수와 반복문만으로도 원하는 범위의 문자를 간단히 필터링할 수 있습니다.