이 튜토리얼에서는 파이썬 리스트의 sort() 메서드에 대해 자세히 알아보겠습니다. sort() 메서드는 리스트를 오름차순 또는 내림차순으로 정렬할 때 사용하며, 선택적 매개변수(optional parameters)의 사용 여부에 따라 다양한 방식으로 활용할 수 있습니다.
sort() 메서드는 원본 리스트를 직접 수정하는(in-place) 방식으로 동작합니다.
기본 sort() 사용법
아무 매개변수도 전달하지 않고 sort() 메서드를 호출하면 리스트가 오름차순으로 정렬됩니다. 예제를 통해 바로 확인해 보겠습니다.
예제
# 리스트 초기화 numbers = [4, 3, 5, 1, 2] # 숫자 오름차순 정렬 numbers.sort() # 결과 출력 print(numbers)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
[1, 2, 3, 4, 5]
reverse 매개변수로 내림차순 정렬하기
reverse 선택적 매개변수를 사용하면 리스트를 내림차순으로 정렬할 수 있습니다. reverse 매개변수에 True 값을 전달하기만 하면 됩니다.
예제
# 리스트 초기화 numbers = [4, 3, 5, 1, 2] # 내림차순으로 정렬 numbers.sort(reverse=True) # 결과 출력 print(numbers)
실행 결과
[5, 4, 3, 2, 1]
key 매개변수로 정렬 기준 지정하기
sort() 메서드는 key라는 또 다른 선택적 매개변수를 받을 수 있습니다. key 매개변수는 리스트를 어떤 값을 기준으로 정렬할지 알려주는 역할을 합니다.
예를 들어 딕셔너리로 이루어진 리스트가 있고, 특정 키값을 기준으로 정렬해야 한다고 가정해 봅시다. 이 경우 정렬 기준이 되는 값을 반환하는 함수를 key 매개변수에 전달하면 됩니다. 아래 예제에서는 람다(lambda) 함수를 사용해 각 딕셔너리의 'a' 키값을 기준으로 정렬하고 있습니다.
예제
# 딕셔너리 리스트 초기화
numbers = [{'a': 5}, {'b': 1, 'a': 1}, {'c': 3, 'a': 3}, {'d': 4, 'a': 4}, {'e': 2, 'a': 2}]
# 'a' 키값을 기준으로 딕셔너리 리스트 정렬
numbers.sort(key=lambda dictionary: dictionary['a'])
# 결과 출력
print(numbers)
실행 결과
[{'b': 1, 'a': 1}, {'e': 2, 'a': 2}, {'c': 3, 'a': 3}, {'d': 4, 'a': 4}, {'a': 5}]
마무리
지금까지 파이썬 sort() 메서드의 기본 사용법과 함께 reverse, key 매개변수를 활용하는 방법까지 살펴보았습니다. sort()는 원본 리스트를 직접 수정한다는 점을 꼭 기억하세요. 만약 원본을 유지한 채 정렬된 새 리스트가 필요하다면 sorted() 내장 함수를 사용하는 것이 좋습니다. 튜토리얼 내용에 대해 궁금한 점이 있다면 댓글로 남겨주세요!