Dandy Now!
  • [레벨1][PCCE 기출문제] 10번 / 데이터 분석 - sort() 메서드의 반환값?
    2023년 12월 04일 21시 04분 57초에 업로드 된 글입니다.
    이 글은 2023년 12월 04일 12시 05분 59초에 마지막으로 수정되었습니다.
    작성자: DandyNow
    728x90
    반응형

    1. [PCCE 기출문제] 10번 / 데이터 분석

    https://school.programmers.co.kr/learn/courses/30/lessons/250121

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

     

    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
    반응형
    댓글