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

파이썬에서 요소 길이를 기준으로 리스트 정렬하는 방법

이 글에서는 사용자로부터 입력받은 리스트의 요소들을 문자열 길이를 기준으로 정렬하는 파이썬 프로그램을 소개합니다. 여기서는 파이썬의 내장 함수인 sorted()를 활용하며, 핵심은 key=len 매개변수입니다.

예시

입력 :: ["mona", "pp", "aaa"]
각 요소의 길이는 [4, 2, 3]
길이 기준 정렬 순서는 [2, 3, 4]
출력 :: ["pp", "aaa", "mona"]

알고리즘

정렬 과정은 아주 간단합니다.

  1. 리스트의 요소를 입력받습니다.
  2. 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 옵션을 추가하면 됩니다.