sort()와 sorted는 일반적으로 파이썬 리스트를 정렬할 수 있다.
두 함수 모두 숫자, 문자열, 튜블, 리스트 등의 요소를 가지는 리스트를 입력으로 받을 수 있으며, 기본적으로 오름차순으로 정렬한다.
두 함수 모두 key 인자를 사용하여 정렬할 때 기준이 되는 값을 지정할 수 있으며, reverse 인자를 사용하여 역순으로 정렬할 수도 있다.
이번 포스팅에서는 파이썬 sort sorted 차이점을 알고자 한다
sort()란?
- sort() : 리스트형의 메소드이며, 리스트 자체를 정렬하고 반환값이 없다. sort()를 사용하면 기존 리스트가 변경된다. 특히 sort()는 리턴값이 NONE이므로 정렬된 값은 리턴되지 않으므로 주의해야 한다.
- sort는 리스트를 직접 변경하기 때문에 메모리를 추가로 소비하지 않으므로 상대적으로 빠르다. 리스트가 큰 경우 sort를 사용하는 것도 더 효율적일 수 있다.
sort() 사용 방법
sort_List = [5,7,3,4,1,2,6]
sort_List.sort()
print(sort_List)
리스트를 선언 후 리스트 뒤에. sort()를 입력해 주면 된다.
위와 같이 정렬되지 않은 리스트를 sort()해주게 된다면 아래와 같이 sort()되어 오름차순으로 정렬되게 된다.
sorted()란?
- soted() : 내장 함수이며, 리스트의 정렬된 복사본을 반환한다. sort()와 달리 sort()는 원본 그대로 복사 후 NONE을 반환하지만 sorted()는 기존 리스트를 변경하지 않고 리스트를 복사 후 정렬된 값을 반환해 준다.
- sorted는 정렬된 복사본을 반환하기 때문에 원본 리스트를 보존해야 하는 경우 사용하기 좋다
- 하지만 정렬된 복사본을 만드는 과정에서 메모리를 추가적으로 사용하기 때문에 sort보다 느려질 수 있다.
sorted() 사용 방법
ex_List = [3, 4, 1, 5, 9, 2, 6, 5, 3]
sorted_list = sorted(ex_List)
print("원본 : ", ex_List)
print("sorted()결과 값 : ", sorted_list)
sort()는 리스트형 메소드이므로 List함수뒤에 붙여서 사용하지만 sorted()는 내장 함수이므로 list함수 뒤에 쓰지 않고 독자적으로 사용하되 정렬할 리스트를 넣어줘야 한다.
위의 소스처럼 사용하게 되면 아래와 같은 결과 값이 나온다.
sort와 sorted 속도 차이는 상황에 따라 다를 수 있다.
정렬 알고리즘의 성능과 입력 데이터의 크기에 따라서도 속도 차징가 발생한다. 대부분의 경우에 두 함수의 속도 차이는 미세하게 차이 난다. 더 빠른 함수를 선택하는 것이 중요한 것이 아닌 상황에 맞게 적절한 함수를 선택하는 것이 더 중요하다.
2023.03.20 - [프로그래밍/Python] - [Python] 파이썬 리스트 자료형(list)
2023.03.20 - [프로그래밍/Python] - [Python] 파이썬 리스트 자료형(list) 연산자 및 변경/삭제
파이썬 sort sorted 참고문서 : https://docs.python.org/ko/3/howto/sorting.html
댓글