Menu
CoddyTech

데이터 변환기

Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 78번째.

challenge icon

챌린지

어려움

분석을 위해 학생 기록 목록을 처리하는 transform_dataset라는 함수를 만드세요.

각 기록은 다음을 포함하는 딕셔너리입니다.

  • student_id: 학생의 고유 식별자
  • grades: 숫자 성적 목록
  • subjects: 학생이 수강 중인 과목 목록

함수는 다음을 수행해야 합니다.

  1. 각 학생의 평균 성적을 계산합니다.
  2. 모든 성적이 70을 초과하는 학생(자격을 갖춘 학생)만 포함합니다. 이 조건을 확인하려면 Python의 all() 함수를 사용해야 합니다.
  3. 자격을 갖춘 학생이 수강하는 과목을 요약하여, 각 과목을 수강하는 자격을 갖춘 학생 수를 셉니다.
  4. 두 개의 키가 있는 딕셔너리를 반환합니다.
    • qualified_students: 학생 ID를 평균 성적(소수점 이하 2자리로 반올림)에 매핑하는 딕셔너리
    • subject_summary: 과목을 해당 과목을 수강하는 자격을 갖춘 학생 수에 매핑하는 딕셔너리

참고: Python의 all() 함수는 반복 가능한 객체의 모든 요소가 참일 때만 True를 반환합니다. 예를 들어, all(grade > 70 for grade in grades)는 모든 성적이 70을 초과할 때만 True를 반환합니다.

예시 입력:

[
    {
        "student_id": "S123", 
        "grades": [88, 92, 85], 
        "subjects": ["Math", "Science", "History"]
    },
    {
        "student_id": "S124", 
        "grades": [65, 95, 80], 
        "subjects": ["Math", "Science", "English"]
    },
    {
        "student_id": "S125", 
        "grades": [91, 89, 92], 
        "subjects": ["Math", "Physics", "History"]
    }
]

예시 출력:

{
    'qualified_students': {'S123': 88.33, 'S125': 90.67}, 
    'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}

직접 해보기

def transform_dataset(data):
    # 여기에 코드를 작성하세요
    
    # 단계 1: 각 학생의 평균 성적을 계산하고 자격을 갖춘 학생을 선별합니다
    # (모든 성적이 70점을 초과하는 학생)
    
    # 단계 2: 자격을 갖춘 학생들이 수강한 과목의 요약 정보를 만듭니다
    
    # 단계 3: qualified_students와 subject_summary가 포함된 최종 딕셔너리를 반환합니다
    pass

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러