[python] 데이터 정렬(Sort) 방법

데이터 정렬은 프로그래밍에서 매우 일반적으로 사용되는 작업 중 하나입니다. 데이터를 정렬함으로써 검색, 비교 및 분석을 수행하기 쉽고 효율적으로 만들 수 있습니다.

Python에서는 데이터를 정렬하기 위해 다양한 방법을 제공합니다. 이번 글에서는 몇 가지 대표적인 정렬 알고리즘을 살펴보겠습니다.

1. 내장 함수를 사용한 정렬

Python 내장 함수인 sorted()를 사용하면 매우 간편하게 리스트를 정렬할 수 있습니다. 이 함수는 원본 리스트를 변경하지 않고 정렬된 새로운 리스트를 반환합니다.

numbers = [5, 2, 9, 1, 8]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

위의 예제 코드는 numbers 리스트를 오름차순으로 정렬한 결과인 [1, 2, 5, 8, 9]를 출력합니다.

2. 리스트의 sort() 메서드 사용

리스트 객체의 sort() 메서드를 사용하면 원본 리스트를 정렬할 수 있습니다. 이 메서드는 그 자체로 리스트를 정렬하고 반환값은 None입니다.

numbers = [5, 2, 9, 1, 8]
numbers.sort()
print(numbers)

위의 예제 코드는 numbers 리스트를 오름차순으로 변경하고, 정렬된 결과인 [1, 2, 5, 8, 9]를 출력합니다.

3. 사용자 정의 정렬

정렬 기준에 따라 사용자가 원하는 대로 정렬할 수도 있습니다. 이를 위해 key 매개변수를 사용하여 정렬 기준을 지정할 수 있습니다.

students = [
    {"name": "Amy", "age": 23},
    {"name": "John", "age": 20},
    {"name": "Emily", "age": 25}
]

sorted_students = sorted(students, key=lambda student: student['age'])
print(sorted_students)

위의 예제 코드는 students 리스트를 학생의 나이에 따라 오름차순으로 정렬합니다. 즉, sorted_students 리스트는 [{'name': 'John', 'age': 20}, {'name': 'Amy', 'age': 23}, {'name': 'Emily', 'age': 25}]가 됩니다.

4. 정렬 순서 변경

위의 예제에서는 모두 오름차순으로 정렬하였지만, 내림차순으로 정렬하고 싶다면 reverse 매개변수를 사용하면 됩니다.

numbers = [5, 2, 9, 1, 8]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)

위의 예제 코드는 numbers 리스트를 내림차순으로 정렬한 결과인 [9, 8, 5, 2, 1]를 출력합니다.

결론

Python에서는 sorted() 함수와 sort() 메서드를 사용하여 간단하게 데이터를 정렬할 수 있습니다. 추가적으로 사용자 정의 정렬을 위해 key 매개변수를 활용할 수도 있습니다. 이를 통해 다양한 데이터 정렬 요구에 효과적으로 대응할 수 있습니다.

참고 자료: Python 공식 문서