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

Python – 정렬된 문자열 추출하기

파이썬에서 문자열 목록 중 알파벳 순으로 정렬된 문자열만 골라내야 하는 경우가 있습니다. 이럴 때는 리스트 컴프리헨션(list comprehension)과 내장 함수 sorted()를 함께 사용하면 간단하게 해결할 수 있습니다.

예제 코드

아래는 정렬된 문자열을 추출하는 방법을 보여주는 예제입니다.

my_list = ["pyt", "Fdf", "Fun"]

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

my_result = [element for element in my_list if ''.join(sorted(element)) == element]

print("The result is :")
print(my_result)

실행 결과

The list is :
['pyt', 'Fdf', 'Fun']
The result is :
['Fdf']

코드 설명

  • 먼저 문자열로 구성된 리스트를 정의하고, 콘솔에 출력하여 확인합니다.

  • 리스트 컴프리헨션을 사용해 리스트의 각 요소를 순회하면서, 해당 요소의 문자들을 sorted()로 정렬한 뒤 ''.join() 메서드로 다시 하나의 문자열로 합칩니다.

  • 정렬된 결과가 원래 요소와 동일하다면, 그 문자열은 이미 알파벳 순서대로 배열되어 있다는 의미이므로 결과 리스트에 포함됩니다. 예제에서는 'Fdf'만 조건을 만족합니다.

  • 최종 결과는 변수에 저장된 후 콘솔에 출력됩니다.

핵심 포인트

sorted(element)는 문자열을 구성하는 개별 문자들을 오름차순으로 정렬한 리스트를 반환합니다. 이를 join으로 연결해 원본 문자열과 비교함으로써, 해당 문자열이 처음부터 정렬된 상태인지 손쉽게 판별할 수 있습니다. 대소문자가 섞여 있는 경우 유니코드 코드 포인트 기준으로 비교되므로, 필요에 따라 key=str.lower 옵션을 활용하면 대소문자를 무시한 정렬도 가능합니다.