방명록
- [레벨1][PCCE 기출문제] 10번 / 데이터 분석 - sort() 메서드의 반환값?2023년 12월 04일 21시 04분 57초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
1. [PCCE 기출문제] 10번 / 데이터 분석
https://school.programmers.co.kr/learn/courses/30/lessons/250121
2. sort() 메서드 반환값은 None!
분명히 다 풀었는데 결괏값이 None인 이해할 수 없는 상황이 펼쳐졌다. 원인은 아래의 코드와 같이 sort() 메서드를 리턴했기 때문이었다.
def solution(data, ext, val_ext, sort_by): answer = [] column = ["code", "date", "maximum", "remain"] ext_idx = column.index(ext) sort_by_idx = column.index(sort_by) for i in data: if i[ext_idx] < val_ext: answer.append(i) return answer.sort(key=lambda x: x[sort_by_idx]) # None print( solution( [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]], "date", 20300501, "remain", ) )
sort() 메서드는 원본 리스트(answer)를 변경하고 None을 반환한다. 따라서 아래의 코드와 같이 sort() 메서드를 호출한 후 정렬된 리스트를 반환하면 된다. 반면 sorted() 함수의 경우는 원본 리스트를 변경하지 않고 새로운 정렬된 리스트를 반환한다.
def solution(data, ext, val_ext, sort_by): answer = [] column = ["code", "date", "maximum", "remain"] ext_idx = column.index(ext) sort_by_idx = column.index(sort_by) for i in data: if i[ext_idx] < val_ext: answer.append(i) answer.sort(key=lambda x: x[sort_by_idx]) return answer # sorted 함수의 반환값은 리턴할 수 있다. # return sorted(answer, key=lambda x: x[sort_by_idx]) print( solution( [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]], "date", 20300501, "remain", ) )
728x90반응형'CS > 코딩 테스트' 카테고리의 다른 글
[레벨2][정렬] 가장 큰 수 (0) 2024.02.15 [레벨1] 삼총사 - 자바스크립트에서 조합은 어떻게 구할까? (0) 2023.09.16 [레벨2][파이썬] 더 맵게 (0) 2023.07.18 [레벨1][자바스크립트] 숫자 짝궁 (0) 2023.07.17 [레벨1][파이썬] 숫자 짝궁 (0) 2023.07.17 다음글이 없습니다.이전글이 없습니다.댓글