파이썬 sorted() 함수란?
이 튜토리얼에서는 파이썬(Python)의 sorted() 함수에 대해 자세히 알아보겠습니다.
sorted() 함수는 반복 가능한(iterable) 객체를 오름차순 또는 내림차순으로 정렬할 때 사용합니다. 딕셔너리로 이루어진 리스트를 특정 키나 값 기준으로 정렬하는 것도 가능합니다. 지금부터 sorted() 함수를 제대로 활용하는 방법을 하나씩 살펴보겠습니다.
참고로 sorted() 함수는 원본 데이터를 변경하지 않고 새로운 정렬된 리스트를 반환합니다. 반면 리스트의 sort() 메서드는 원본 자체를 변경(in-place)한다는 차이가 있습니다.
기본 sorted() 사용법
sorted() 함수는 별도의 옵션 없이 호출하면 기본적으로 오름차순으로 정렬합니다. 예제를 통해 확인해 보겠습니다.
예제
# 리스트 초기화 numbers = [4, 3, 5, 1, 2] # 숫자 정렬 sorted_numbers = sorted(numbers) # 정렬된 결과 출력 print(sorted_numbers)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
[1, 2, 3, 4, 5]
reverse 매개변수로 내림차순 정렬하기
reverse 매개변수를 True로 설정하면 반복 가능한 객체를 내림차순으로 정렬할 수 있습니다.
예제
# 리스트 초기화 numbers = [4, 3, 5, 1, 2] # 숫자 내림차순 정렬 sorted_numbers = sorted(numbers, reverse=True) # 정렬된 결과 출력 print(sorted_numbers)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
[5, 4, 3, 2, 1]
key 매개변수 활용하기
sorted() 함수는 key라는 선택적 매개변수를 추가로 받을 수 있습니다. key 매개변수는 어떤 값을 기준으로 정렬할지 sorted() 함수에 알려주는 역할을 합니다.
예를 들어 딕셔너리로 이루어진 리스트가 있고, 특정 값을 기준으로 정렬해야 한다고 가정해 보겠습니다. 이 경우 정렬 기준이 되는 값을 반환하는 함수를 key 매개변수로 전달하면 됩니다. 보통 람다(lambda) 함수를 함께 사용하면 간결하게 처리할 수 있습니다.
예제
# 딕셔너리 리스트 초기화
numbers = [{'a': 5}, {'b': 1, 'a': 1}, {'c': 3, 'a': 3}, {'d': 4, 'a': 4}, {'e': 2, 'a': 2}]
# 'a' 키의 값을 기준으로 정렬
sorted_dictionaries = sorted(numbers, key=lambda dictionary: dictionary['a'])
# 정렬된 결과 출력
print(sorted_dictionaries)실행 결과
위 코드를 실행하면 각 딕셔너리의 'a' 키 값(1, 2, 3, 4, 5)을 기준으로 오름차순 정렬된 결과가 출력됩니다.
[{'b': 1, 'a': 1}, {'e': 2, 'a': 2}, {'c': 3, 'a': 3}, {'d': 4, 'a': 4}, {'a': 5}]마무리
지금까지 파이썬 sorted() 함수의 기본 사용법, reverse 매개변수를 이용한 내림차순 정렬, 그리고 key 매개변수를 활용한 커스텀 정렬까지 살펴봤습니다. sorted()는 항상 새로운 정렬된 리스트를 반환하고 원본은 그대로 유지된다는 점만 기억하면, 리스트·튜플·딕셔너리 등 다양한 자료형에서 유연하게 활용할 수 있습니다.
튜토리얼 내용에 대해 궁금한 점이 있다면 댓글로 남겨주세요.