파이썬 정렬 : sort() 함수 사용 방법과 예제
파이썬의 sort() 함수는 리스트를 정렬하는 데 사용되는 메서드이다. 이 함수의 목적은 리스트 내의 요소들을 정렬하여 오름차순 또는 내림차순으로 배치하는 것이다. sort(0 함수는 리스트 내의 요소를 변경하며, 원래 리스트를 정렬된 버전으로 대체한다.
sort() 함수의 기본 사용법
리스트.sort()
다음은 sort() 함수를 사용하는 경우를 정리해 보았다.
- 리스트의 순서를 변경하고 정렬된 버전을 얻고자 할 때 사용
- 오름차순 또는 내림차순으로 리스트를 정렬하고자 할 때 사용
- 숫자, 문자열 또는 사용자 정의 객체를 비교하여 정렬하고자 할 때 사용한다. 파이썬은 다양한 데이터 유형을 처리할 수 있으며, 사용자 정의 비교 함수를 제공할 수 있다.
sort() 함수를 사용하면 리스트 내의 요소를 효과적으로 정렬할 수 있어서 데이터를 조작하거나 필요한 순서로 나열하는 데 유용하다. 단, sort() 함수는 원래 리스트를 변경하므로 원본 데이터를 유지하고 싶다면 주의가 필요하다. 필요에 따라 sorted() 함수를 사용하여 원본 리스트를 변경하지 않고 정렬된 새로운 리스트를 얻을 수 있다.
파이썬 sort() 함수 예제
이제는 다양한 sort() 함수 사용의 예제들을 살펴보며 다양한 사용 방법들에 대해 알아보자.
오름차순 정렬
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
numbers.sort()
print(numbers)
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
실행 결과
sort() 함수를 사용하여 리스트 numbers를 오름차순으로 정렬하는 예제이다. sort() 함수는 위와 같이 아무 매개변수도 입력하지 않고 사용할 경우 기본적으로 오름차순으로 정렬하게 된다.
내림차순 정렬
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
numbers.sort(reverse=True)
print(numbers)
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
실행 결과
sort() 함수에 reverse = True 매개변수를 전달하여 numbers 리스트를 내림차순으로 정렬한다. 결과로 내림차순으로 정렬된 리스트가 출력되는 걸 확인할 수 있다.
문자열 리스트 정렬
fruits = ["cherry","fig","date","banana","apple"]
fruits.sort()
print(fruits)
['apple', 'banana', 'cherry', 'date', 'fig']
실행 결과
sort() 함수를 사용하여 fruits 리스트를 알파벳순으로 오름차순 정렬한다. 결과로 알파벳순으로 정렬된 리스트가 출력된 것을 확인할 수 있다.
알파벳 정렬
alphabets = ["o","y","r","p","a","c","k","l","b"]
alphabets.sort()
print(alphabets)
['a', 'b', 'c', 'k', 'l', 'o', 'p', 'r', 'y']
실행 결과
알파벳 또한 sort() 함수로 위와 같이 정렬할 수 있다.
사용자 지정 함수를 이용한 정렬
# 길이를 기준으로 오름차순으로 정렬
def custom_sort(item):
return len(item)
fruits = ["apple", "banana", "cherry", "date", "fig"]
fruits.sort(key=custom_sort)
print(fruits)
['fig', 'date', 'apple', 'banana', 'cherry']
실행 결과
key 매개변수는 정렬 시 사용자 지정 기준을 제공하는 중요한 매개변수이다. 이를 통해 각 항목을 비교할 때 사용할 비교 함수를 정의할 수 있다. 비교 함수를 정의함으로써 정렬 프로세스에서 어떤 기준으로 항목을 정렬할 것인지를 결정한다. 예를 들어, key = len과 같이 len 함수를 사용하면 문자열 요소들을 길이에 따라 정렬할 수 있다. 위의 예제는 사용자 정의 함수를 따로 만들어 해당 함수를 key의 매개변수로 넘겨주었다. 이처럼 비교 함수를 정의하여 정렬 기준을 숫자, 문자열 길이, 날짜 또는 사용자 지정 로직에 따라 다양하게 지정할 수 있다.
sorted() : 정렬한 리스트를 원본 유지하지 않고 새로운 리스트로 반환
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print("Original List:", numbers)
print("Sorted List:", sorted_numbers)
Original List: [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
Sorted List: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
실행 결과
sorted() 함수를 사용하여 numbers 리스트를 정렬한 후, 정렬된 결과를 sorted_numbers 변수에 저장한다. 원본 리스트 numbers는 변경되지 않고 그대로 유지된다. 따라서 numbers와 sorted_numbers는 각각 원본과 정렬된 버전의 리스트를 나타낸다.
읽어주셔서 감사합니다.