python의 리스트 함수인 sort() 함수는, 원본을 정렬하고 None을
반환한다.
a = list.sort()
이런식으로 a 라는 변수에 list.sort() 담으면 a 값에는 None 이 들어간다.
def solution(array):
answer = 0
array = list(array)
array = array.sort(reverse=True)
index = len(array)//2
answer = array[index]
return answer
# TypeError: object of type 'NoneType' has no len()
정렬된 리스트를 다시 사용하려면, sort() 메서드를 호출하고 나서 따로 할당하지 말고, 원본 리스트를 직접 정렬하면 된다.
def solution(array):
array.sort(reverse=True)
index = len(array) // 2
answer = array[index]
return answer
| 특징 | sort_values() (Pandas) | sort() (리스트 메서드) | sorted() (내장 함수) |
|---|---|---|---|
| 대상 객체 | 데이터프레임(DataFrame) | 리스트(List) | iterable 객체 (리스트, 튜플 등) |
| 원본 변경 여부 | 기본적으로 원본 변경 없음 | 원본 리스트 직접 변경 | 원본 iterable 객체 변경 없음 |
| 정렬 기준 설정 | 열의 값을 기준으로 정렬 (by 매개변수) | key 매개변수로 정렬 기준 설정 가능 | key 매개변수로 정렬 기준 설정 가능 |
| 정렬 방향 설정 | ascending 매개변수로 설정 | reverse=True 옵션으로 설정 | reverse=True 옵션으로 설정 |
| 반환 값 | 정렬된 데이터프레임(또는 시리즈) 반환 | None을 반환, 원본 리스트 변경됨 | 정렬된 새로운 리스트 반환 |
| 사용 예시 | df.sort_values(by='column_name') | my_list.sort() | sorted(my_list) |
| 성능 | 데이터프레임 크기에 따라 다름 | O(n log n) 시간 복잡도 | O(n log n) 시간 복잡도 |