문자열이 담긴 리스트를 sorted()
함수로 정렬하면 가나다순으로 정렬된다.
>>> fruits = ['배', '사과', '복숭아', '블루베리']
>>> sorted(fruits)
['배', '복숭아', '블루베리', '사과']
길이를 기준으로 문자열을 정렬하려면 어떻게 해야 할까? sorted()
함수를 활용해 fruits
데이터를 이름이 긴 것에서 짧은 것 순으로 정렬하라. 정렬 결과는 다음과 같아야 한다.
['블루베리', '복숭아', '사과', '배']
코드
fruits = ['배', '사과', '복숭아', '블루베리']
sorted_fruits = sorted(fruits, key=len, reverse=True)
print(sorted_fruits)
실행 결과
['블루베리', '복숭아', '사과', '배']
sorted()
함수로 정렬을 할 때 정렬의 기준을 지정하려면 key
매개변수에 기준 함수를 인자로 전달하면 된다. 길이를 기준으로 비교하려면 len()
함수를 사용하면 된다.sorted()
함수는 오름차순으로 정렬하는 것이 기본값이다. reverse
매개변수에 True
를 전달하여 내림차순으로 정렬할 수 있다.sorted(fruits, key=lambda item: -len(item))
과 같이 key
매개변수에 함수를 직접 작성하여 입력하는 것도 가능한 방법이다. 이 경우에는 내림차순 정렬을 reverse
매개변수를 이용하지 않고 기준 함수에서 값의 부호를 반전(-len(item)
에서 -
연산)하는 방법으로 처리했다.