이 글에서는 사용자로부터 입력받은 리스트의 요소들을 문자열 길이를 기준으로 정렬하는 파이썬 프로그램을 소개합니다. 여기서는 파이썬의 내장 함수인 sorted()를 활용하며, 핵심은 key=len 매개변수입니다.
예시
입력 :: ["mona", "pp", "aaa"] 각 요소의 길이는 [4, 2, 3] 길이 기준 정렬 순서는 [2, 3, 4] 출력 :: ["pp", "aaa", "mona"]
알고리즘
정렬 과정은 아주 간단합니다.
- 리스트의 요소를 입력받습니다.
sorted(A, key=len)함수를 적용해 길이순으로 정렬합니다.
예제 코드
# 리스트를 길이순으로 정렬하는 함수
def sortedlist(A):
newlist = sorted(A, key=len)
return newlist
# 실행 코드
A = list()
n = int(input("리스트의 크기를 입력하세요 :: "))
print("요소를 입력하세요 ::")
for i in range(int(n)):
k = input("")
A.append(k)
print("정렬된 리스트 ::>", sortedlist(A))
실행 결과
리스트의 크기를 입력하세요 :: 5 요소를 입력하세요 :: mona gulli adwaita aadrika pinki 정렬된 리스트 ::> ['mona', 'gulli', 'pinki', 'adwaita', 'aadrika']
핵심 포인트
sorted() 함수의 key 매개변수에 len 함수를 전달하면 각 문자열의 길이가 비교 기준이 되어 짧은 요소부터 차례대로 정렬됩니다. 또한 sorted()는 원본 리스트를 변경하지 않고 새로운 정렬된 리스트를 반환하므로 안전하게 사용할 수 있습니다.
만약 길이가 긴 순서대로(내림차순) 정렬하고 싶다면 sorted(A, key=len, reverse=True)처럼 reverse=True 옵션을 추가하면 됩니다.