파이썬에서 리스트를 정렬하는 작업은 매우 빈번하게 발생합니다. 이를 위해 sort와 sorted 두 가지 함수가 제공되는데, 이들은 유사한 기능을 제공하면서도 중요한 차이점을 가지고 있습니다.
1. sort()
- 기능: 리스트를 직접 변경하여 정렬합니다.
- 반환 값: None (리스트 자체를 변경합니다)
my_list = [5, 2, 4, 1, 3]
# 리스트를 직접 정렬
my_list.sort()
print(my_list) # [1, 2, 3, 4, 5]
2. sorted()
- 기능: 리스트를 새롭게 만들어 정렬 결과를 반환합니다.
- 반환 값: 정렬된 새로운 리스트
my_list = [5, 2, 4, 1, 3]
# 새 리스트를 만들어 정렬 결과 반환
sorted_list = sorted(my_list)
print(my_list) # [5, 2, 4, 1, 3]
print(sorted_list) # [1, 2, 3, 4, 5]
3. sort와 sorted의 차이점
구분 |
sort |
sorted |
리스트 변경 |
직접 변경 |
새 리스트 생성 |
반환 값 |
None |
정렬된 새 리스트 |
메모리 사용 |
적음 |
많음 |
속도 |
빠름 |
느림 |
inplace |
True |
False |
4. 주의 사항
- sort 함수는 리스트를 직접 변경하기 때문에 주의해야 합니다.
- sorted 함수는 새로운 리스트를 만들기 때문에 메모리 사용량이 더 많습니다.
- 속도는 sort 함수가 sorted 함수보다 빠릅니다.
- inplace 파라미터는 sort 함수에서만 사용할 수 있으며, 기본값은 True입니다.
5. 어떤 함수를 사용해야 할까?
- 리스트를 직접 변경하고 싶고 속도가 중요할 때는 sort 함수를 사용합니다.
- 리스트를 변경하지 않고 정렬 결과만 필요할 때는 sorted 함수를 사용합니다.
- 메모리 사용량이 중요할 때는 sort 함수를 사용합니다.