728x90
Python에서 리스트를 정렬하는 데 사용되는 두 가지 주요 방법은 sort()
메서드와 sorted()
함수이다.
1. sort()
메서드
sort()
는 리스트 자체를 정렬한다. 즉, 호출된 리스트를 직접 수정하고 아무것도 반환하지 않는다. (반환 값None
)- 이 메서드는 리스트에만 적용되며, 다른 반복 가능한(iterable) 데이터 유형에는 사용할 수 없다.
2. sorted()
함수
sorted()
는 어떤 반복 가능한 객체도 입력으로 받아 정렬된 새 리스트를 반환한다. 이는 리스트뿐만 아니라 문자열, 튜플, 딕셔너리의 키 등 다양한 데이터 유형에 사용될 수 있다.- 원래 데이터는 수정되지 않고, 정렬된 새로운 리스트가 결과로 반환된다.
성능 차이
- 속도 측면:
sort()
와sorted()
는 내부적으로 동일한 정렬 알고리즘(팀소트, Timsort)을 사용하기 때문에 기본적인 정렬 속도는 거의 동일하다. (sort()가 조금 더 빠르긴 하지만 큰 차이는 아니다.) - 메모리 측면:
sort()
는 기존의 리스트를 직접 변경하는 in-place 정렬이므로 추가 메모리 할당이 필요 없다는 점에서는sorted()
에 비해 약간 더 효율적이다.sorted()
는 새 리스트를 생성하고 그 안에 정렬된 요소를 저장해야 하므로 추가 메모리가 필요하다.
선택 기준
- 원본 데이터를 유지하면서 정렬된 결과가 필요한 경우
sorted()
를 사용 - 원본 데이터를 수정해도 되고 메모리 사용을 최소화하려면
sort()
를 사용
참고 링크
https://www.acmicpc.net/blog/view/58
728x90