Menu
Coddy logo textTech

데이터 변환기

Coddy Python 여정의 Logic & Flow 섹션에 포함된 레슨 — 78개 중 78번째.

challenge icon

챌린지

어려움

분석을 위해 학생 기록 리스트를 처리하는 transform_dataset이라는 이름의 함수를 만드세요.

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

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

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

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

참고: 파이썬의 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

Logic & Flow의 모든 레슨