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

Python – 알파벳 순서로 연속된 문자가 포함된 문자열 추출하기

문자열 목록에서 알파벳 순서로 연속된 문자(예: 'h' 다음에 'i')가 포함된 문자열을 추출해야 하는 경우가 있습니다. 이럴 때 간단한 반복문과 유니코드 값을 반환하는 ord() 메서드를 활용하면 손쉽게 해결할 수 있습니다.

예제 코드

아래는 실제 구현 예시입니다.

my_list = ["python", 'is', 'cool', 'hi', 'Will', 'How']

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

my_result = []

for element in my_list:
   for index in range(len(element) - 1):
      if ord(element[index]) == ord(element[index + 1]) - 1:
         my_result.append(element)
         break
print("The result is :")
print(my_result)

실행 결과

The list is :
['python', 'is', 'cool', 'hi', 'Will', 'How']
The result is :
['hi']

코드 설명

  • 먼저 여러 개의 문자열을 담은 리스트를 정의하고, 콘솔에 출력하여 확인합니다.

  • 조건을 만족하는 문자열을 저장할 빈 리스트를 하나 생성합니다.

  • 바깥 반복문으로 리스트의 각 문자열을 순회하고, 안쪽 반복문으로 문자열 내 인접한 두 문자를 차례대로 비교합니다.

  • ord() 함수로 각 문자의 유니코드 코드 포인트를 구한 뒤, 앞 문자의 값이 뒤 문자의 값보다 정확히 1 작은지 검사합니다. 이 조건이 참이면 두 문자가 알파벳 순서상 연속된 것입니다.

  • 조건을 만족하면 해당 문자열을 결과 리스트에 추가하고, break 문으로 내부 반복문을 즉시 빠져나와 불필요한 비교를 줄입니다.

  • 모든 순회가 끝나면 최종 결과 리스트를 콘솔에 출력합니다. 위 예제에서는 'h'와 'i'가 연속되어 있으므로 'hi'만 결과로 추출됩니다.