파이썬으로 단어를 알파벳 순서로 정렬하기
문자열에 여러 개의 단어가 공백 하나로 구분되어 있다고 가정해 보겠습니다. 이때 문자열 클래스의 split() 메서드를 사용하면 공백을 기준으로 단어들을 분리하여 리스트 형태로 반환합니다. 그다음 내장 리스트 클래스의 sort() 메서드를 호출하면 리스트의 단어들을 알파벳 순서로 정렬할 수 있습니다.
기본 예제
>>> string = 'Hello how are you?' >>> word_list = string.split() >>> word_list ['Hello', 'how', 'are', 'you?'] >>> word_list.sort() >>> word_list ['Hello', 'are', 'how', 'you?']
동작 원리 살펴보기
위 코드의 실행 과정은 다음과 같습니다.
1. split() 메서드: 문자열 'Hello how are you?'를 공백을 기준으로 분리하여 ['Hello', 'how', 'are', 'you?']라는 리스트를 생성합니다.
2. sort() 메서드: 리스트 자체를 제자리에서(in-place) 알파벳 순서로 정렬하며, 별도의 새로운 리스트를 만들지 않고 원본 리스트를 직접 변경합니다.
sorted() 함수를 사용하는 방법
원본 리스트를 유지한 채 정렬된 새로운 리스트를 얻고 싶다면 내장 함수인 sorted()를 사용할 수 있습니다.
>>> string = 'Hello how are you?' >>> sorted_list = sorted(string.split()) >>> sorted_list ['Hello', 'are', 'how', 'you?']
주의 사항: 대소문자 처리
기본적으로 파이썬의 정렬은 대소문자를 구분하며, 대문자가 소문자보다 앞순서로 처리됩니다(ASCII 코드 기준). 대소문자를 구분하지 않고 정렬하려면 key 매개변수에 str.lower를 지정하면 됩니다.
>>> string = 'Banana apple Cherry' >>> sorted(string.split(), key=str.lower) ['apple', 'Banana', 'Cherry']
이처럼 split()과 sort()(또는 sorted())를 조합하면 문자열 속 단어를 간단하게 알파벳 순서로 정렬할 수 있습니다.