데이터 변환기
Coddy Python 여정의 Logic & Flow 섹션에 포함된 레슨 — 78개 중 78번째.
챌린지
어려움분석을 위해 학생 기록 리스트를 처리하는 transform_dataset이라는 이름의 함수를 만드세요.
각 기록은 다음을 포함하는 딕셔너리입니다:
student_id: 학생의 고유 식별자grades: 숫자 성적 리스트subjects: 학생이 수강 중인 과목 리스트
함수는 다음을 수행해야 합니다:
- 각 학생의 평균 성적을 계산합니다.
- 모든 성적이 70점을 초과하는 학생(자격 있는 학생)만 포함합니다. 이 조건을 확인하려면 파이썬의
all()함수를 사용해야 합니다. - 자격 있는 학생들이 수강하는 과목의 요약을 생성하여, 각 과목을 수강하는 자격 있는 학생의 수를 계산합니다.
- 두 개의 키를 가진 딕셔너리를 반환합니다:
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